Ruby On Rails: способ создания разных файлов семян для сред
Как сделать задачу rake db:seed использовать другой файл seeds.rb для производства и разработки?
изменить: любая лучшая стратегия будет приветствоваться
Ответ 1
У вас может быть задача rake вести себя по-разному на основе текущей среды, и вы можете изменить среду, в которой выполняется задача, передав команду RAILS_ENV=production команде. Используя эти два вместе, вы можете создать что-то вроде этого:
Создайте следующие файлы с конкретными семенами среды:
Мне нравится внедрять все семена внутри одного файла seed.rb, а затем просто разделять среды внутри.
if Rails.env.production?
State.create(state: "California", state_abbr: "CA")
State.create(state: "North Dakota", state_abbr: "ND")
end
if Rails.env.development?
for 1..25
Orders.create(order_num: Faker::Number:number(8), order_date: Faker::Business.credit_card_expiry_date)
end
end
Таким образом вам не нужно бросать свойство RAILS_ENV в свою задачу рейка или управлять несколькими файлами. Вы также можете включить Rails.env.test?, но я лично позволю RSPEC позаботиться о данных тестирования.