1

我最近意外地使用 step 方法回滚了迁移。再次运行 db:migrate 后,我的所有数据都按预期消失了。是否可以检索此数据。

4

1 回答 1

0

取自有关该主题的邮件列表:

首先要做的是关闭 postgresql 并对数据目录进行完整备份,包括您可能拥有的任何存档 WAL(pg_xlog 中的文件)。确保首先完成此操作。

接下来,你有备份吗?如果您有删除之前的基础备份,以及从基础备份到现在的所有 WAL 文件,那么您可以尝试将时间点恢复到数据丢失之前的点:

http://www.postgresql.org/docs/9.1/static/continuous-archiving.html

如果不是,我们是在谈论单行还是多行?如果它是单行,您可能可以执行一些手动步骤,例如检查页面以恢复数据。

另一种选择是尝试 pg_resetxlog(首先确保您有一个安全的备份!):

http://www.postgresql.org/docs/9.1/static/app-pgresetxlog.html

并尝试将当前事务 ID 设置为删除运行之前。然后您可以使用 pg_dump 或以其他方式导出已删除的行。

你可以在这里阅读更多:http: //postgresql.1045698.n5.nabble.com/Recover-rows-deleted-td5710305.html

于 2013-06-19T13:13:12.757 回答