【发布时间】: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