我现在正在使用rake 0.8.7
和rails 1.2.3
。当我想使用rake
做一些数据库迁移时,当我输入" rake db:migrate"时,它没有显示任何抱怨。但是当我使用" rake db:rollback"时,它会给出消息:
don't know how to build task "db:rollback"
实际上,所有其他命令除了"迁移"不能在我的机器上工作。例如rake db:migrate:up
或rake db:version
,他们都不会知道如何构建任务"错误。
有什么建议吗?
答案 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