Я пытался выполнить простую задачу добавления состояний в страну в моем новом проекте.Тот же код rake task does no cosole успешно
Я добавил задачу рейка, чтобы остальная часть моей команды могла просто запустить ее, и они хороши, чтобы пойти и то же самое для производства.
task :add_canada_states => :environment do
puts "Finding Canada"
canada = Country.find_by_name("Canada")
if canada.present?
puts "Found canada"
canada_states_hash = [
{name: "Ontario", code: "ON"},
{name: "Quebec", code: "QC"},
{name: "Nunavut", code: "NU"},
{name: "Northwest Territories", code: "NWT"},
{name: "Nova Scotia", code: "NS"},
{name: "New Brunswick", code: "NB"},
{name: "Manitoba", code: "MB"},
{name: "British Columbia", code: "BC"},
{name: "Prince Edward Island", code: "PE"},
{name: "Saskatchewan", code: "SK"},
{name: "Yukon", code: "YT"},
{name: "Alberta", code: "AB"},
{name: "Newfoundland and Labrador", code: "NL"}
]
canada.states.create(canada_states_hash)
else
puts "Countries are not there"
end
end
После запуска задачи локально выход был
Finding Canada
Found canada
Который был ожидаемым, я проверил базу данных и нашел запись.
Я сделал то же самое на сервере (Heroku)
Он напечатан тот же выход
Finding Canada
Found canada
После проверки базы данных для записей, я обнаружил, что они не были добавлены!
Я скопировал код и вставить его в Heroku Рельсы консоли
И добавили данные.
Это очень странное поведение. Что мне не хватает?
скорее всего, среда флаг пропущен, но проверьте [эту тему] (http://stackoverflow.com/a/25282372/3109182) для деталей. – Anthony
имеет ту же среду, что и мое приложение для производства. так как это возможно? –
как вы запустили задачу рейка? очень маловероятно, что это не работает так, как ожидалось, так как heroku заменяет вашу конфигурацию базы данных, поэтому вы не можете писать ни о чем, кроме производственного db. – phoet