我正在编写我的第一个Rails应用程序.我已经运行了几rails generate model ...和rake db:migrate命令,但现在我想改变我的数据模型,因此需要撤销了一些迁移.
该文档说我可以撤消与迁移rake db:rollback,但是这是行不通的.当我在控制台中运行它时,计算机会想几秒钟,但不会对db/migrate/或进行任何更改db/migrate/schema.rb.没有输出打印到控制台.
这种行为是否正确?不db:rollback应该改变我的架构?如果是这样,有谁能想到为什么它可能不起作用?
我在Rails v.3.2.6上.
编辑
此刻rake db:migrate:status给出了
database: db/development.sqlite3
Status Migration ID Migration Name
--------------------------------------------------
up 20120617191211 Create irs
up 20120701154357 Create paths
up 20120701154421 Create nodes
up 20120702151447 ********** NO FILE **********
down 20120702155140 Create venues
down 20120703233833 Remove path from venues
Run Code Online (Sandbox Code Playgroud)
Pet*_*ter 69
解决方案(参见我的评论):运行
rake db:migrate:status
Run Code Online (Sandbox Code Playgroud)
并纠正你在那里发现的问题.在这种情况下(根据@MarkThomas的后续内容),您可能希望检查所需的所有文件.
这对我有用.结合本答案中给出的步骤并按dB进行评论.
class CreateNothing < ActiveRecord::Migration
def change
end
end以下对我有用:
rake db:migrate:down VERSION=20190304092208
可以通过以下命令获取版本号:
rake db:migrate:status
这是回滚最后一次迁移的最后一个版本号