由于我自己的愚蠢,我设法以某种方式使我的数据库处于损坏状态,并且无法弄清楚如何修复它。
问题始于我的一个数据库迁移中的错字。我正在添加一列并且拼错了我想要添加该列的表的名称。我运行了“rake db:migrate”,但它失败了。所以我去修正了错字并再次运行“rake db:migrate”,但什么也没发生。所以我想也许 rails 认为它已经完成了迁移,我运行了“rake db:rollback”,这似乎最终使事情变得复杂,因为它删除了我试图添加列的表。
所有这一切的最终结果是我的数据库版本现在与 rails 认为的不同步。我试过使用 'rake db:migrate:up' 和 'rake db:migrate:down' (带有版本号),但这没有帮助。即使我尝试显式运行创建问题表的迁移,也没有任何反应(如果我运行“向下”版本,它会告诉我它不能删除该表)。我知道我可以直接访问数据库并修补问题表,但我认为找出是否有针对此问题的“适当”解决方案会很好。
非常感谢