迁移回滚会恢复先前的架构,但以前的数据会丢失

时间:2015-02-26 11:42:35

标签: laravel migration database-migration laravel-migrations

我有一个包含以下架构的用户表:

用户  - ID  - 名称  - 用户名   - 密码

此表包含10条记录,我使用迁移更新架构。 然后,我删除名称列并添加两列 firstName lastName ,更新后的用户表架构如下所示:

更新了用户表  - ID  - 名字  - 姓  - 用户名   - 密码

然后我使用迁移回滚来恢复我之前的架构

用户  - ID  - 名称  - 用户名   - 密码

但现在名称列的数据丢失了?迁移不应该让我回到以前的状态(通过恢复先前的模式和数据)

2 个答案:

答案 0 :(得分:1)

不,抱歉。迁移负责数据库结构。它与您的数据无关。实际上,默认情况下,当您回滚上一次迁移时,回滚会执行表drop ,这意味着该表中的所有数据都将丢失。

答案 1 :(得分:0)

我认为迁移可以通过更多努力恢复(恢复)我们的数据。我们可以在 up()部分编写一个例程,该例程可以在 down()部分中进行备份和相应的例程,该例程可以恢复先前的模式以及后续的模式数据。