首页 > 解决方案 > 使用 pg_dump 和 psql 时模式不存在错误

问题描述

我正在尝试将文件从一个远程数据库 Scratxh 迁移到另一个远程数据库。我正在使用 pg_dump 和 psql 下载 .sql 文件,然后使用 psql 在新数据库 - SourceData 中重新创建表。我只想复制表格。我使用 -t 来表示这一点,但我仍然收到以下错误:

错误架构公共不存在错误权限被拒绝设置会话授权。

这些是我使用的命令。

pg_dump -t table -d Scratch -U me -h host.com > table.sql

psql -d SourceData -U me -h host.com < table.sql

我知道 psql 命令使用 .sql 文本文件来重新创建表,因此我尝试编辑此文件以消除对架构“公共”的任何提及。

它没有帮助。我得到了同样的错误。

有人遇到过这种情况么?

标签: migrationschemapsql

解决方案


当错误发生时,您的评论尚不清楚。我会假设它发生在第二个命令上。在这种情况下,显示的第一个错误可能是因为第二个数据库尚未准备好接收数据,即:SQL 包含INSERT对 SourceData 中尚不存在的表的语句。

您需要先在新数据库中创建表,然后才能将数据导入其中。

如果您 p​​g_dump 整个数据库,您可能不会遇到这个确切的问题。


推荐阅读