【发布时间】:2019-08-20 21:46:27
【问题描述】:
我们正在计划一次重大的数据库重组,而不是“创建”所有迁移都是“改变”已经存在的表。
例如:
有一个表 users 包含一列,例如role.
运行迁移后,此列将被删除,并且将使用 hasOne 关系创建表“角色”(仅作为示例)。
我应该如何将旧数据尽可能无缝地转换为新结构?
【问题讨论】:
标签: laravel laravel-5 eloquent
我们正在计划一次重大的数据库重组,而不是“创建”所有迁移都是“改变”已经存在的表。
例如:
有一个表 users 包含一列,例如role.
运行迁移后,此列将被删除,并且将使用 hasOne 关系创建表“角色”(仅作为示例)。
我应该如何将旧数据尽可能无缝地转换为新结构?
【问题讨论】:
标签: laravel laravel-5 eloquent
这取决于您工作的环境。例如,在生产级别,您不能只将这些值从一列移动到另一列,因为数据库正在大量使用客户。但例如,您可以创建迁移以仅创建角色表。然后创建一个新的migration,将每一行对应的角色复制到新创建的表(roles)中。
user_id |角色id
标识 |角色id
将整个 role_id 从 users 表移动到 Roles 表后,您可以推送新的代码实现。
我不太喜欢立即从 users 表中删除 role_id 列的想法。我建议将该列保留一段时间,直到您完成与该列相关的全部更改,然后您可以安全地删除它而不必担心它。
【讨论】: