我正在尝试恢复数据以选择数据库的表 (9.3.5)。这是从生产到测试的数据刷新,同时在测试数据库中维护一些表数据(如应用程序用户表)。我首先截断我计划刷新的表,然后我可以使用以下命令成功恢复 1 个表:
pg_restore -a -d ACMETEST -n public -v -U acme -t hardware /var/acme/backups/restore/ACMEDatabase.bak
,它给出以下响应,紧接着是命令提示符:!pg_restore:连接到数据库进行恢复 pg_restore:处理表“硬件”的数据 pg_restore:设置表数据硬件的所有者和权限
查询显示数据加载成功。
手册页并未表明您可以通过使用数组作为 -t 的输入来一次将数据恢复到多个表中,但我认为这是可能的,所以尝试了这个:
pg_restore -a -d ACMETEST -n public -v -U acme -t hardware,location /var/acme/backups/restore/ACMEDatabase.bak
第二个命令的结果是一行,内容如下: 然后它将我转回命令提示符,就好像命令已完成但没有加载任何数据。
我确实查看了 -L 选项以使用列表文件,但我正在尝试创建一个可重复的过程,该过程可供全国各地数据库上的许多人使用,因此我没有看到从列表中注释掉大量行的过程列表文件为每个还原具有实际成功的机会。我是否必须为我想要恢复的每个单独的表执行第一个命令,或者有什么方法可以将一组表提供给这个命令?