Как передать параметры для вызова задачи Rake способом, который работает?

Я использую драгоценный камень Seed Dump для сбрасывания данных семян в db/seeds.rb. Кроме того, мне нужно запустить однострочное задание после того, как я сброшу эти три таблицы.

Способ, которым я вызываю db:seed:dump:

zeus rake db:seed:dump MODELS=Standard,Category,Brand

Поэтому я попытался переопределить это следующим образом в lib/tasks/database.rake:

namespace :db do 

 namespace :seed do
 task(:dump_setup => :environment) do
 Rake::Task["db:seed:dump"].invoke(:models => "Standard,Category,Brand")
 puts "did it."
 end
 end

end

Я также пробовал:

namespace :db do 

 namespace :seed do
 task(:dump_setup => :environment) do
 Rake::Task["db:seed:dump"].invoke(:models => ['Standard','Category','Brand'])
 puts "did it."
 end
 end

end

Я просто "сделал это" там как заполнитель, пока не получу эту работу.

Этот вызов не работает. Он сбрасывает сотни мегабайт из моей базы данных. Сбрасывать все.

Работа, которую я сделал выше, основана на самых популярных ответах, которые я нашел здесь. Не знаю, почему это работает.

1 ответ

zeus rake db:seed:dump MODELS=Standard,Category,Brand

MODELS - это переменная среды. Перед вызовом зависимой задачи вам необходимо установить переменную окружения через ENV:

ENV['MODELS'] = 'Standard,Category,Brand'

licensed under cc by-sa 3.0 with attribution.