簡體   English   中英

如何編寫運行 Rails db:migrate 任務的 rake 任務?

[英]How do I code a rake task that runs the Rails db:migrate task?

我想在我自己的 rake 任務中運行 db:migrate VERSION=0 然后 db:migrate 。 我對如何做到這一點感到困惑。 我需要特殊的需求聲明嗎? 我的 rake 任務將駐留在 Rails 應用程序的 lib/tasks 目錄中。 謝謝。

編輯: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 或更高版本。

您的任務是否僅取決於擁有一個干凈的數據庫? 如果是這種情況,那么您可以這樣做:

任務:my_task => [:環境,'db:reset']

查看rake db:reset ,因為這將完成您正在嘗試做的事情。

要查看所有 rake 任務的作用,請運行rake -T

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM