【问题标题】:how can i rollback on ruby on rails in my situation在我的情况下,如何在 ruby​​ on rails 上回滚
【发布时间】:2018-02-14 04:49:28
【问题描述】:

我需要在我的 ruby​​ on rails 项目上回滚迁移

我不小心删除了我的迁移文件 [ID:20180214033313]。

我的迁移状态

migration output

我尝试过 bundle exec rake:db rollback 但没有帮助,我也尝试过 bundle exec rake db:migrate:down VERSION=20180214033313 但它给了我下面的错误,

ActiveRecord::UnknownMigrationVersionError: 
No migration with version number 20180214033313> 

关于如何解决此问题的任何建议?

【问题讨论】:

  • “我该怎么做?”是什么意思?您想要回滚到您删除的迁移。当你明确地核对它时,rake 应该如何找到你指定的文件?您是否真的在尝试回滚到 删除的迁移之前的版本?
  • 这能回答你的问题吗? rake db:rollback not working?

标签: ruby-on-rails


【解决方案1】:

为您的情况提供更好的解决方案。假设您的应用程序已初始化 git

如果您在当前提交中删除了迁移

执行git stash,以便您可以终止/删除您所做的更改。现在您可以回滚迁移了。

如果您在之前的提交中删除了迁移

您可以使用命令DROP DATABASE databasename 删除您的数据库,然后您可以进行新的迁移。

【讨论】:

    【解决方案2】:
    1. 如果你正在使用 git 那么, 您可以使用 git 来恢复该文件, 在 git status (或 git gui) 中,您将找到已更改文件的列表, 在那里你会看到

      已删除:db/seeds.rb

      类似这样的删除文件。 随便用,

      git checkout 文件名

      它会恢复文件。

    2. 如果你不使用 git 那么, 采用 rake db:migrate:status 并检查时间戳并创建一个与已删除文件完全相同的时间戳和您之前给出的名称的文件。并添加与以前相同的代码。并进行迁移。

    希望这会有所帮助

    【讨论】:

      【解决方案3】:

      如果您使用的是桌面版 github 应用程序,您只需右键单击并放弃您所做的更改。

      在真正简单的回滚之前我也做过同样的事情

      【讨论】:

        【解决方案4】:

        如果您使用rails delete model MyModel 意外删除了您的文件,您可以使用rails db:reset

        【讨论】:

          猜你喜欢
          • 2013-10-04
          • 2010-10-23
          • 2014-10-24
          • 1970-01-01
          • 1970-01-01
          • 2012-04-06
          • 2016-01-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多