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

Posted

技术标签:

【中文标题】迁移回滚恢复以前的架构,但以前的数据丢失【英文标题】:migration rollback reverts the previous schema but previous data is lost 【发布时间】:2015-04-28 18:37:47 【问题描述】:

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

用户 - ID - 姓名 - 用户名 - 密码

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

更新的用户表 - ID - 名 - 姓 - 用户名 - 密码

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

用户 - ID - 姓名 - 用户名 - 密码

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于迁移回滚恢复以前的架构,但以前的数据丢失的主要内容,如果未能解决你的问题,请参考以下文章

如何回滚到以前的迁移并删除架构中的表和列?

装Linux丢失整个盘的数据。

MDF文件丢失,如何恢复数据库(MS-SQL)

从以前的 Spyder 控制台恢复输出

svn怎么版本还原?

服务器数据恢复服务器迁移数据时数据丢失的数据恢复案例