如何从Postgres转储中pg_restore一个表及其模式?

时间:2019-09-24 20:51:38

标签: postgresql heroku heroku-postgres pg-dump pg-restore

我在还原表的架构时遇到一些困难。我转储了Heroku Postgres数据库,并使用pg_restore从中将一个表还原到本地数据库(它有20多个表)。它已成功还原,但是在尝试向表中插入新数据时遇到了问题。

当我使用 psql 打开数据库时,我发现还原的表可用于所有数据,但是其架构有零行。无论如何,我可以从转储中导入表及其架构吗?非常感谢。

这是将表还原到本地数据库的方式:

pg_restore -U postgres --dbname my_db --table=message latest.dump

编辑:

我在官方文档之后尝试了类似的方法,但是它只是被阻止了,什么也没发生。我的数据库很小,不超过几兆字节,而我要还原的表的架构不超过100行。

pg_restore -U postgres --dbname mydb --table=message --schema=message_id_seq latest.dump

2 个答案:

答案 0 :(得分:0)

作为更一般的答案(我需要从巨大的备份中还原单个表),您可能想看看这篇文章:https://thequantitative.medium.com/restoring-individual-tables-from-postgresql-pg-dump-using-pg-restore-options-ef3ce2b41ab6

document.write

答案 1 :(得分:-1)

从Heroku DevCenter here

  

Heroku Postgres直接集成到Heroku CLI中并提供   许多有用的命令可以简化常见的数据库任务

您可以检查here是否正确配置了您的环境。

通过这种方式,您可以使用Heroku CLI pg:pull命令将远程数据从Heroku Postgres数据库拉到计算机上的本地数据库。

例如:

$ heroku pg:pull HEROKU_POSTGRESQL_MAGENTA mylocaldb --app sushi