不知道如何构建任务“db:rollback”

时间:2014-05-28 20:53:54

标签: ruby-on-rails ruby rake

我现在正在使用rake 0.8.7rails 1.2.3。当我想使用rake做一些数据库迁移时,当我输入" rake db:migrate"时,它没有显示任何抱怨。但是当我使用" rake db:rollback"时,它会给出消息:

don't know how to build task "db:rollback"

实际上,所有其他命令除了"迁移"不能在我的机器上工作。例如rake db:migrate:uprake db:version,他们都不会知道如何构建任务"错误。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

编辑您的Rakefile以包含:

namespace :db do
  desc 'Rolls the schema back to the previous version. Specify the number of steps with STEP=n'
  task :rollback => :environment do
    step = ENV['STEP'] ? ENV['STEP'].to_i : 1
    version = ActiveRecord::Migrator.current_version - step
    ActiveRecord::Migrator.migrate('db/migrate/', version)
  end
end

一些项目模板将回滚任务从Rakefile中删除,这是愚蠢的。

答案 1 :(得分:0)

这是一个较新的rake命令。使用旧版本的rake,您必须执行rake db:migrate:down VERSION=xxxx