我想从迁移中调用雷神任务。 有了 rake 我可以写
def self.up
Rake::Task["db:rollback"].invoke
end
但是我怎样才能用雷神做到这一点呢?
(thor命令是“thor db:rollback”)
(thor db:rollback
不是一个选项,我希望看到输出并且脚本应该在出现错误时中止)
更新: 从 Thorfile 调用迁移
看起来像这样:
require 'active_record'
class Db < Thor
desc "migrate", "description ..."
def migrate
ActiveRecord::Migrator.migrate(MIGRATIONS_PATH)
end
end
最佳答案
假设db:rollback
引用的是Db
类的rollback
任务,那么你可以这样做:
script = Db.new
script.invoke(:rollback)
您可以在文档中阅读更多内容:http://rdoc.info/github/wycats/thor/master/Thor/Base/ClassMethods#start-instance_method
关于ruby - 从迁移运行 Thor 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4155229/