我正在编写我的第一个Rails应用程序.我已经运行了一些rails generate model ...rake db:migrate命令,但现在我想更改我的数据模型,因此需要undo撤消一些migrations.

docs人说我可以用rake db:rollback撤销迁移,但这不起作用.当我在控制台中运行这个程序时,计算机会思考几秒钟,但不会对db/migrate/db/migrate/schema.rb进行任何更改.控制台没有输出.

这种行为正确吗?db:rollback不应该改变我的模式吗?如果是这样的话,有人能想到为什么它可能不起作用吗?

我在Rails 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

推荐答案

解决方案(见我的 comments ):运行

rake db:migrate:status

纠正你在那里发现的问题.在这种情况下(根据@MarkThomas的后续内容),您可能需要判断所有需要的文件是否都已准备就绪.

Ruby-on-rails相关问答推荐

方法和括号之间没有空格时出错

Django模型在关系更新时更新相关对象

具有 IN 子句的参数化查询在 ruby​​-on-rails 的 blazer 工具中无法按预期工作

在 POST 请求中添加了 Rails 奇怪的参数

为什么是 json.partial!使用新的哈希语法传递本地时,jbuiler 模板中的行不执行?

Rails 7,Hotwire 动态表单,更新值不起作用

如何配置我的 Rails 应用程序(使用 Puma)以通过 HTTPS 提供服务?

Rails 7 应用程序 - 引用模型文件时出现未初始化常量错误

Rails Scope 返回 all 而不是 nil

Rails:包含多态关联

理解 Gemfile.lock:删除 Gemfile.lock 然后再次运行 bundle install 可以吗?

如何在我的 rails 应用程序中测试 ActiveRecord::RecordNotFound?

从控制器中删除 Cookie

设计和强大的参数

未定义的方法 attr_accessible

在 rake 任务期间关闭观察者的简单方法?

非持久 ActiveRecord 模型属性

Rails:如何将日期时间字符串解析为特定时区

ActiveRecord 何时会保存关联?

Rails.cache 在测试之间被清除了吗?