Выполнить задачу Граблей из миграции?

У меня есть задача Граблей, которая загружает данные конфигурации в 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'

Где это пошло не так, как надо?

49
задан Fabiano Soriani 14 April 2010 в 02:00
поделиться

1 ответ

Да, есть способ сделать это:

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']

83
ответ дан 7 November 2019 в 11:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: