[英]Rails — Possible to run migration methods in generic rake task?
我知道這不是最佳實踐,並且很可能甚至不應該使用,因為遷移的用途是什么,但我想知道是否可以在常規rake任務中執行特定於遷移的命令。 就像是:
namespace :dummy do
task :update => :environment do
add_column :users, :deleted, :boolean, { :null => false, :default => false }
end
end
謝謝
可以在rake任務中運行任意偽遷移:
namespace :dummy do
task :update => :environment do
ActiveRecord::Base.connection.add_column :users, :deleted, :boolean, :null => false, :default => false
end
end
如果你做了很多這樣的事情,請使用簡寫:
namespace :dummy do
task :update => :environment do
c = ActiveRecord::Base.connection
c.add_column :users, :deleted, :boolean, :null => false, :default => false
end
end
是的,你應該做這樣的事情:
namespace :dummy do
task :update => :enviroment do
ActiveRecord::Migration.send(:add_column, :users, :deleted, :boolean, { :null => false, :default => false })
end
end
沒有經過測試,但重要的是包含遷移類,然后發送您希望運行的方法。
更新為直接通過@tadman使用ActiveRecord::Migration
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.