【问题标题】:How do I fix a broken rails db migration如何修复损坏的 Rails 数据库迁移
【发布时间】:2011-04-15 09:56:45
【问题描述】:

由于我自己的愚蠢,我设法以某种方式使我的数据库处于损坏状态,并且无法弄清楚如何修复它。

问题始于我的一个数据库迁移中的一个错字。我正在添加一列,但拼错了要添加该列的表的名称。我运行了“rake db:migrate”,但它失败了。所以我去修正了错字并再次运行“rake db:migrate”,但什么也没发生。所以我想也许 rails 认为它​​已经完成了迁移,我运行了 'rake db:rollback',它似乎终于把事情搞砸了,因为它删除了我试图添加列的表。

这一切的最终结果是我的数据库版本现在与 rails 认为的不同步。我试过使用 'rake db:migrate:up' 和 'rake db:migrate:down' (带有版本号),但这没有帮助。即使我尝试显式运行创建问题表的迁移,也没有任何反应(如果我运行“向下”版本,它会告诉我它不能删除该表)。我知道我可以直接访问数据库并修补问题表,但我认为最好找出是否有针对此问题的“适当”解决方案。

非常感谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 rails-migrations


    【解决方案1】:

    我会在这里使用解决方案: Rails: Alter migrations during early development phases

    【讨论】:

    • 工作得很好,谢谢。将在未来的木偶戏中继续使用该脚本;)干杯
    【解决方案2】:

    rake db: 重置

    由于某种原因,发布答案至少需要 30 个字符 :-)

    【讨论】:

    • 您可以使用这 30 个字符来解释该命令的确切作用。 ;)
    • 嘿,是的 :) 但这是 2011 年的事,我不记得了?
    • 它将做的是将数据库重置为一个干净的状态,然后运行所有迁移。有效,但它会清除所有非种子数据。
    猜你喜欢
    • 1970-01-01
    • 2018-03-24
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2021-02-04
    • 2016-08-24
    • 1970-01-01
    相关资源
    最近更新 更多