我最近开始使用Rails,并使用CLI创建了一些模型,这些模型又创建了一些迁移。
我在其中添加了所有列后运行了rake db:migrate
命令,然后意识到我遗漏了关联。
我做了什么?我继续编辑迁移以包含这些键。
我再次运行rake db:migrate
,模式中没有任何变化。
然后我运行rake db:reset
和rake db:setup
。
当这不起作用时,我删除了我的schema.rb
(该死的东西不会更新!)并尝试重新创建它。当我意识到这不起作用时,我删除了数据库,并终止了模式。
现在我被一些手动修改的迁移卡住了,没有schema.rb
,没有数据库。
我如何得到修改后的迁移,以生成一个模式,并发挥良好的Rails?
在开发中,删除并重建数据库无关紧要。我经常这样做,我甚至有一个rake任务。链接的3个命令是:
rake db:drop
rake db:create
rake db:migrate
# And a 4rth optional command to rebuild your test database
rake db:test:prepare
有了这个你应该很好
下次在迁移后需要手工修改时,您应该通过:
-
rake db:rollback
- 编辑迁移
-
rake db:migrate
遵循这些步骤将为您省去一些麻烦
附加信息:
在将迁移部署到生产服务器之后,您不能手动修改它,因此您必须编写另一个迁移来执行修改(添加列等…)