1

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

用户 - id - 名称 - 用户名 - 密码

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

更新用户表 - id - firstName - lastName - username - password

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

用户 - id - 名称 - 用户名 - 密码

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

4

2 回答 2

1

不,对不起。迁移关心数据库结构。它与您的数据无关。实际上,默认情况下,当您回滚之前的迁移时,回滚会执行table drop,这意味着该 table 中的所有数据都将丢失。

于 2015-02-26T11:53:46.867 回答
0

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

于 2015-02-26T12:08:07.273 回答