我想在我自己的rake任务中运行db:migrate VERSION = 0然后db:migrate。我很困惑如何做到这一点。我需要特殊要求声明吗?我的rake任务将驻留在Rails应用程序的lib / tasks目录中。感谢。
答案 0 :(得分:2)
编辑:Rake :: Task []不接受参数,你必须在ENV中设置它。此外,您必须重新启用该任务才能多次运行它。
ENV['VERSION']= '0'
Rake::Task['db:migrate'].invoke
Rake::Task['db:migrate'].reenable
ENV.delete 'VERSION'
Rake::Task["db:migrate"].invoke
注意:Rake :: Task.reenable需要Rake 0.8.2或更高版本。
答案 1 :(得分:2)
您的任务是否仅依赖于拥有干净的数据库?如果是这种情况,那么你可以这样做:
任务:my_task => [:environment,'db:reset']
答案 2 :(得分:0)
查看rake db:reset
,因为这样可以完成您的目标。
要查看所有佣金任务的执行情况,请运行rake -T