我在恢复表的模式时遇到了一些困难。我转储了我的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
3条答案
按热度按时间cnh2zyt31#
作为一个更一般的答案(我需要从一个 * 巨大的 * 备份中恢复一个表),你可能想看看这篇文章:https://thequantitative.medium.com/restoring-individual-tables-from-postgresql-pg-dump-using-pg-restore-options-ef3ce2b41ab6
wr98u20j2#
恢复单个schema限定表
基于@Haroldo_OK的答案;要指定表所属的架构,请在还原数据时使用
--schema
选项:如果要还原到的Postgres群集与进行备份的群集不同,则要还原到的群集可能不具有进行备份的群集的组/登录角色。在这种情况下,您可以选择指定
--no-owner
和--no-privileges
选项,以防止恢复对象所有权和访问权限(授予/撤销命令)。pg_restore documentation。
cvxl0en23#
来自Heroku DevCenter
Heroku Postgres直接集成到Heroku CLI中,并提供了许多有用的命令来简化常见的数据库任务
您可以在此处检查您的环境是否已正确配置。
通过这种方式,您可以使用Heroku CLI pg:pull命令将远程数据从Heroku Postgres数据库拉取到计算机上的本地数据库。
例如: