Rails:我修改了我的迁移文件(坏,我知道)

时间:2014-07-15 20:05:00

标签: ruby-on-rails rails-migrations

我最近开始使用Rails,并使用CLI创建了一些模型,这反过来又创建了一些迁移。

我在那里添加了所有列后运行了rake db:migrate命令,然后意识到我遗漏了这些关联。

那我做了什么? 我继续编辑迁移以包含这些密钥。

我再次运行rake db:migrate,架构中没有任何变化。

然后我运行rake db:reset然后rake db:setup

当这不起作用时,我删除了我的schema.rb(这件事不会更新!)并尝试recreating it。当我意识到这不起作用时,我删除了数据库,并杀死了模式。

现在我遇到了一些手动修改的迁移,没有schema.rb而没有数据库。

  

如何让修改后的迁移生成模式,并与Rails一起玩?

1 个答案:

答案 0 :(得分:4)

开发中,删除并重建数据库无关紧要。我经常这样做,甚至还有一个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

这样你应该很好

下次您需要在迁移后手动修改迁移,您应该按以下方式处理:

  1. rake db:rollback
  2. 修改您的迁移
  3. rake db:migrate
  4. 遵循这些步骤可以省去一些麻烦


    奖金信息:

    将迁移部署到生产服务器后,您无法手动修改它,因此您必须编写另一个将执行修改的迁移(添加列等等)