У меня есть задача Граблей, которая загружает данные конфигурации в DB из файла, есть ли корректный рубин/направляющие способ назвать его на миграции?
Моя цель состоит в том, чтобы синхронизировать мою команду, которую конфигурации DB, без должны широковещательно передать затем для выполнения задачи ла-ла-ла
def self.up
change_table :fis_situacao_fiscal do |t|
t.remove :mostrar_endereco
t.rename :serie, :modelo
end
Faturamento::Cfop.destroy_all()
#perform rake here !
end
ОБНОВИТЕ, Как я делаю теперь, и работы:
system('rake sistema:load_data file=faturamento/cfop')
И это - предложение от @Ryan Четырехрядного ячменя, и это - исключение:
Rake::Task['rake sistema:load_data file=faturamento/cfop'].invoke()
.
== AlterSituacaoFiscalModeloEndereco: migrating ====================
-- change_table(:fis_situacao_fiscal)
-> 0.0014s
rake aborted!
An error has occurred, this and all later migrations canceled:
Don't know how to build task 'rake sistema:load_data file=faturamento/cfop'
Где это пошло не так, как надо?
Да, есть способ сделать это:
Rake::Task['your_task'].invoke
Обновить
Не помещайте грабли в скобки, только имя задачи. Вы должны установить переменную ENV при запуске этого:
В консоли
FILE=somefile.text rake db:sistema:load_data
Вызов ее отдельно
FILE=somefile.text rake some:other:task:that:calls:it
Это будет доступно в ваших задачах как ENV ['file']