Come posso codificare un'attività rake che esegue l'attività Rails db: migrate?
-
03-07-2019 - |
Domanda
Vorrei eseguire db: migrate VERSION = 0 e poi db: migrare all'interno della mia attività di rake. Sono confuso su come farlo. Ho bisogno di una dichiarazione di richiesta speciale? La mia attività rake risiederà nella directory lib / task di un'app Rails. Grazie.
Soluzione
Il tuo compito dipende solo da avere un db pulito? In tal caso, puoi farlo:
task: my_task = > [: environment, 'db: reset']
Altri suggerimenti
EDIT: Rake :: Task [] non accetta parametri, devi impostarlo in ENV. Inoltre, è necessario riattivare l'attività per eseguirla più volte.
ENV['VERSION']= '0'
Rake::Task['db:migrate'].invoke
Rake::Task['db:migrate'].reenable
ENV.delete 'VERSION'
Rake::Task["db:migrate"].invoke
NOTA: Rake :: Task.reenable richiede Rake 0.8.2 o successivo.
Dai un'occhiata a rake db: reset
poiché ciò compirà ciò che stai cercando di fare.
Per vedere cosa fanno tutte le tue attività di rake, esegui rake -T