PostgreSQL抛出错误:"错误:关系table_name的权限被拒绝"

den*_*ter 8 postgresql import

我正在尝试使用'psql -U username -W dbname <migrations/schema.psql'将模式转储导入PostgreSQL,部分导入Schema,但是控制台会抛出错误,例如"ERROR:关闭table_name的权限被拒绝"和"错误:关系表名称不存在".

我创建了这样的数据库:"createdb -O username dbname"

只导入7个表,只需导入其中的3个表就会中断.

有人提示,该怎么办?

Mat*_*ood 3

如果备份采用“自定义”格式(-Fc),您可以使用 pg_restore 来代替,这样您就可以告诉它不应用所有权更改:

pg_restore -U username -W --no-owner --dbname=dbname migrations/schema.psql
Run Code Online (Sandbox Code Playgroud)

所有对象都将以“用户名”作为所有者创建。

除此之外,尝试将 ALTER OWNER 和 SET SESSION AUTHORIZATION 命令 grep 到新文件中(或通过管道将 grep 输出发送到 psql)。这些命令应始终以纯文本输出格式位于一行上。