Come posso codificare un'attività rake che esegue l'attività Rails db: migrate?

StackOverflow https://stackoverflow.com/questions/611189

  •  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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top