如何在postgres和ruby on rails上回滚后检索我的旧数据

时间:2013-06-19 13:03:05

标签: ruby-on-rails postgresql-9.1

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

1 个答案:

答案 0 :(得分: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