我需要重命名Rails项目中启用strong_migrations的列。我正在查看官方指南,它规定了以下步骤:
- 创建一个新列
- 写入两列
- 将数据从旧列回填到新列
- 将读取内容从旧列移动到新列
- 不要再写旧专栏了
- 删除旧列
据我所知,我需要大约4个PR来简单地更改列的名称。该PR将是:
- 为新表创建迁移并开始使用新字段
- 回填数据并将读取内容从旧列移到新列
- 将
self.ignored_columns = ["some_column"]
添加到模型中,并删除使用该旧列的旧逻辑 - 创建迁移以删除旧列
是这样吗?或者我错过了什么,也许有些公关是不必要的?
可以用3来完成。具有迁移数据的方法(a和b(
-
添加新列和将开始向其写入的代码。a(添加一个将在部署后回填数据的工作程序
-
更改代码以开始读取新列,并将旧列添加到被忽略的列中。b( 在部署之前回填迁移中的数据。
-
删除旧列
数据迁移样式将取决于数据库的大小。如果它足够小,您可以在部署期间的迁移中进行。如果它更大,则必须事先迁移数据。工作程序脚本或控制台脚本。在这种情况下,在迁移中进行回填仍然是一个好主意,以确保数据在任何地方都被迁移(每个开发人员的本地数据库、临时环境等等(。