我应该在迁移文件夹之外进行Rails迁移吗?

时间:2017-05-16 04:06:50

标签: ruby-on-rails ruby-on-rails-5 rails-migrations

我正在对项目进行重大更改,通过让Company模型吸收其has_one SupplierTerms模型来更改数据结构。所有字段都将进入CompanySupplierTerms将被删除。

因为我需要移动数据以及结构,所以这是操作的顺序:

  1. 创建新字段。
  2. 将数据复制到新字段。
  3. 删除旧字段。
  4. 一位同事建议我为每个单独的操作做一个rake任务。换句话说,没有将其作为db/migrations/系统的一部分。

    最好的方法是什么?

    如果它是独立的,我可以手动完成每项任务,这对于可怕的生产变更很有帮助。

    如果迁移在迁移系统中,其他开发人员只需调用rake db:migrate即可在正确的设置中获取其架构。

1 个答案:

答案 0 :(得分:0)

将迁移保留在迁移文件夹

如果您运行迁移但是没有将它们放在迁移文件夹中,整个系统将会搞乱。

但是,您可以执行rake任务:

  1. 运行“添加新字段”迁移
  2. 将数据传输到新字段
  3. 运行“删除旧字段”迁移
  4. 此任务将转移数据,而没有数据传输的其他开发人员可以简单地运行所有迁移,最终使用正确的数据库设置。