在启用strong_migrations的情况下重命名列-Rails



我需要重命名Rails项目中启用strong_migrations的列。我正在查看官方指南,它规定了以下步骤:

  1. 创建一个新列
  2. 写入两列
  3. 将数据从旧列回填到新列
  4. 将读取内容从旧列移动到新列
  5. 不要再写旧专栏了
  6. 删除旧列

据我所知,我需要大约4个PR来简单地更改列的名称。该PR将是:

  1. 为新表创建迁移并开始使用新字段
  2. 回填数据并将读取内容从旧列移到新列
  3. self.ignored_columns = ["some_column"]添加到模型中,并删除使用该旧列的旧逻辑
  4. 创建迁移以删除旧列

是这样吗?或者我错过了什么,也许有些公关是不必要的?

可以用3来完成。具有迁移数据的方法(a和b(

  1. 添加新列和将开始向其写入的代码。a(添加一个将在部署后回填数据的工作程序

  2. 更改代码以开始读取新列,并将旧列添加到被忽略的列中。b( 在部署之前回填迁移中的数据。

  3. 删除旧列

数据迁移样式将取决于数据库的大小。如果它足够小,您可以在部署期间的迁移中进行。如果它更大,则必须事先迁移数据。工作程序脚本或控制台脚本。在这种情况下,在迁移中进行回填仍然是一个好主意,以确保数据在任何地方都被迁移(每个开发人员的本地数据库、临时环境等等(。

相关内容

  • 没有找到相关文章

最新更新