我们计划进行一次重大的数据库重组,所有的迁移都是对已有的-ing表进行“修改”,而不是“创建”。
例如:
有保存列的表users,例如role。
运行迁移后,此列将被删除,并将创建具有hasOne关系的表"Roles“(只是一个示例)。
我应该如何尽可能无缝地将旧数据转换为新结构?
发布于 2019-08-20 21:46:28
这取决于您正在工作的环境。例如,在生产级别,您不能仅仅将这些值从一个列移动到另一个列,因为数据库的使用率很高。但例如,您可以创建迁移以仅创建角色表。然后创建一个新的迁移,将每行对应的角色复制到新创建的表(角色)中。
角色
user_id | role_id
用户
id | role_id
将整个role_id从users表移动到Roles表之后,您就可以推送新的代码实现了。
我不喜欢立即从users表中删除role_id列的想法。我建议将该列保留一段时间,直到您完成与该列相关的所有更改,然后您可以安全地删除它,而不用担心它。
https://stackoverflow.com/questions/57573625
复制相似问题