我们有一个由PostgreSQL DB支持并托管在Heroku上的Rails应用程序。
我们最近有一个错误,它删除了一些记录(在我们捕捉到它之前很少)。
请原谅我的无知,但是是否有一种直接从备份中提取记录(或3)并将其插入到活动DB中的直接方法?或者必须手动从Rails控制台重新创建这些?
谢谢你的建议、警告等。
发布于 2015-05-13 23:42:51
在此过程中,将只将相关表还原到新的空虚拟数据库。然后使用标准SQL工具查找行。不确定你是否在任何方面受到了Heroku的限制。在shell中,postgres用户(或任何具有足够权限的用户)首先创建一个空的暂存DB:
createdb -T template0 dummy如果DB不是太大,而且您有足够的磁盘空间,那么为了简单起见,只需恢复整个DB即可。否则,有选择地还原表:
pg_restore --dbname=dummy --schema=public --table=foo my_backup手册中的细节。
或者,如果只有1或3条记录,我会用vim或您的编辑器打开(默认的纯文本)备份,手动搜索,将选定的行(备份中的行)复制到一个新文件my_copy_file.sql中。如果您确信可以直接将数据COPY到现有表中,则将添加行。如果您需要首先操作数据,请将COPY操作为一个新的空表。如果它不存在,那么先创建它,但是:
CREATE TABLE staging (Like foo);
COPY staging FROM 'path/to/my_productive_db`那就从那里出发。
https://dba.stackexchange.com/questions/101463
复制相似问题