【问题标题】:PendingMigrationError after running db:rollback运行 db:rollback 后出现 PendingMigrationError
【发布时间】:2014-09-18 11:47:56
【问题描述】:

我对 Rails 4.0.x 中的迁移和回滚有点困惑。

我想使用 rake db:migrate 和 rake db:rollback 在迁移更改前后查看我的站点。

但是,当我尝试在回滚后查看站点时,我收到 PendingMigrationError 的 ActiveRecord 错误。

Migrations are pending; run 'rake db:migrate RAILS_ENV=development' to resolve this issue.

在我回滚后似乎不允许我查看我的网站。是这样的吗?

我曾假设使用回滚可以让您将应用移回之前的状态并继续使用它。 Active Record 迁移指南似乎没有涵盖这种情况,http://guides.rubyonrails.org/migrations.html

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    直接运行

    rake db:migrate
    

    在你运行你的服务器之前。

    应该是这样的。

    谢谢。

    【讨论】:

    • 这如何解决所提出的问题?
    【解决方案2】:

    即使您已经回滚了数据库,文件系统仍然在 db/migrate 下有一个 Rails 知道尚未运行的迁移。您要么需要迁移(如上面@user3865871 所述,要么需要从文件系统中删除迁移文件。

    【讨论】:

    • 我正在查看我的 db:migrate 文件夹并且没有尚未运行的迁移,我可以进一步运行一个命令(恰好一次)然后弹出。作为参考,我运行的命令是 rspec
    • 我很确定 Rails 4 在保持测试数据库最新方面做得更好。但是您可以尝试运行rake db:migrate db:test:prepare 并查看是否可以解决问题。这应该确保您的开发数据库是最新的,然后将该架构复制到测试数据库中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2022-11-27
    • 2017-06-02
    • 2023-03-28
    相关资源
    最近更新 更多