Что касается первой части вашего вопроса, да, я бы просто добавил некоторые меры предосторожности для запуска такой задачи на производстве. Я поставил защиту как это в моей задаче начальной загрузки / посева:
task :exit_or_continue_in_production? do
if Rails.env.production?
puts "!!!WARNING!!! This task will DESTROY " +
"your production database and RESET all " +
"application settings"
puts "Continue? y/n"
continue = STDIN.gets.chomp
unless continue == 'y'
puts "Exiting..."
exit!
end
end
end
Я создал эту суть для некоторого контекста.
Что касается второй части вопроса - обычно вам действительно нужны две вещи: а) очень легко заполнить базу данных и настроить приложение для разработки, и б) загрузить приложение на рабочий сервер (например: вставить пользователя-администратора, создание папок зависит от приложения и т. д.).
Я бы использовал светильники для посева в разработке - каждый из команды затем видит те же данные в приложении, и то, что в приложении, соответствует тому, что находится в тестах. (Обычно я помещаю rake app:bootstrap
, rake app:seed
rake gems:install
и т. Д. В rake app:install
, чтобы каждый мог работать над приложением, просто клонировав репозиторий и выполнив одну эту задачу.)
Однако я бы никогда не использовал приспособления для заполнения / начальной загрузки на производственном сервере. db/seed.rb
Rails действительно подходит для этой задачи, но вы, конечно, можете использовать ту же логику в своей собственной задаче rake app:seed
, как и другие.