使用 Laravel 将数据从表迁移到不同的表

Posted

技术标签:

【中文标题】使用 Laravel 将数据从表迁移到不同的表【英文标题】:Migrate data from table to different tables with Laravel 【发布时间】:2017-02-14 17:02:04 【问题描述】:

我正在使用 Laravel 上的现有项目,我需要更改当前数据库架构并保留当前数据。

例如,我在初始迁移时有这张表:

人物

----------------------------------------------
| **Id**        |**Name**  | **PhoneNumber** |
----------------------------------------------
|             1 | John Doe | 111-55-5855     |
----------------------------------------------
|             2 | Jane Doe | 111-55-5521     |
----------------------------------------------

但是现在,我需要把它分成两个表:

人物

----------------------------
| **Id**        |**Name**  |
----------------------------
|             1 | John Doe |
----------------------------
|             2 | Jane Doe |
----------------------------

个人电话

---------------------------------------------------
| **PhoneId**   | **PersonId**  | **PhoneNumber** |
---------------------------------------------------
|             1 |             1 | 111-55-5855     |
---------------------------------------------------
|             2 |             2 | 111-55-5521     |
---------------------------------------------------

因此,在新迁移中,我从 Person 中删除 PhoneNumber 并添加新表 PersonPhone。

有没有办法将 PhoneNumber 映射到新表并将 PhoneId 和 PersonId 保留在 Person 表中?或者唯一的方法是创建一个 mysql 脚本?

【问题讨论】:

抱歉,投反对票的原因是什么? 【参考方案1】:

是的,您需要创建一个数据透视表和所需的类。

我发现这是为了让你开始:http://laraveldaily.com/pivot-tables-and-many-to-many-relationships/

==

您可以创建迁移并设置架构来处理它:

https://laravel.com/docs/5.3/migrations 或 https://laravel.com/docs/5.1/migrations

https://laravel.com/docs/5.0/schema

【讨论】:

这不是问题,我想要的是迁移数据,我的意思是,保留当前数据并映射到新架构。 我一直在关注文档,实际上一些表数据已经很好地迁移了,因为我只添加了一个新列,这没关系,但我的问题是像示例这样的表,我将列移动到一个新表。

以上是关于使用 Laravel 将数据从表迁移到不同的表的主要内容,如果未能解决你的问题,请参考以下文章

laravel 数据迁移实现订单列表

在 laravel 中将一些用户信息保存到不同的表中

Laravel将数据插入两个不同的表中

数据怎样从一个数据库到另一个不同结构的表的数据库迁移

Laravel 迁移 - 为 5000 万条数据添加新列

是否可以在 Laravel 7+ 中为已创建的表创建迁移?