Como faço para codificar uma tarefa de rake que executa a tarefa Rails DB: Migre?
-
03-07-2019 - |
Pergunta
Gostaria de executar o DB: Migrar Version = 0 e, em seguida, db: migrar para dentro da minha própria tarefa de rake. Estou confuso sobre como fazer isso. Eu preciso de uma declaração especial necessária? Minha tarefa de ancinho residirá no diretório Lib/Tasks de um aplicativo Rails. Obrigado.
Solução
Sua tarefa depende de ter um banco de dados limpo? Se for esse o caso, você pode fazer:
Tarefa: my_task => [: ambiente, 'db: reset'
Outras dicas
Editar: Rake :: Task [] não aceita parâmetros, você deve defini -lo no env. Além disso, você deve reativar a tarefa para executá -la várias vezes.
ENV['VERSION']= '0'
Rake::Task['db:migrate'].invoke
Rake::Task['db:migrate'].reenable
ENV.delete 'VERSION'
Rake::Task["db:migrate"].invoke
NOTA: RAKE :: Task.releable requer Rake 0.8.2 ou superior.
Verificação de saída rake db:reset
Como isso, realizará o que você está tentando fazer.
Para ver o que todas as suas tarefas de ancinho fazem, execute rake -T