1

移行からトールタスクを呼び出したいです。レーキで私は書くことができます

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
4

1 に答える 1

2

それがクラスのタスクをdb:rollback参照していると仮定すると、次のことができます。rollbackDb

script = Db.new
script.invoke(:rollback)

詳細については、ドキュメントをご覧ください:http: //rdoc.info/github/wycats/thor/master/Thor/Base/ClassMethods#start-instance_method

于 2010-11-11T14:21:14.587 に答える