情况:我使用生成脚手架在新的Rails项目中设置我的对象。除了进行一些迁移之外,我还通过添加和重命名列等直接编辑MySQL表。现在我无法运行测试,因为自动生成的灯具与数据库架构不对应。也许它们基于原始定义加上迁移,而我的迁移不能完全描述新结构。
我发现我可以使用“rake db:test:clone_structure”复制测试数据库中的表(db:test:prepare显然是从迁移中创建的吗?),但是我无法弄清楚如何获取从开发模式而不是从迁移(或正在发生的任何事情)创建的fixture。
我看到有一个Fixtures.create_fixtures方法,但我会把它放在哪里以及如何使用它来重新生成我的所有灯具?
答案 0 :(得分:3)
使用rails时,你永远不会这样做 - “通过添加和重命名列来直接编辑MySQL表” 您创建迁移
答案 1 :(得分:1)
我完全同意您不应在不使用迁移的情况下更改数据库,但重新创建灯具仍然是人们不时遇到的问题。我找到的最佳解决方案是: