小编Jac*_*cia的帖子

如何使 pg_dump 跳过扩展?

这是在 9.3 上,但我记得自 7.x 以来发生过类似的事情。所以我创建了数据库并在其中安装了 plpgsql 扩展。后来我创建了一个 pg_dump,在将它恢复到数据库之前,我确保它也有 plpgsql 扩展名。然后在恢复时会发生这种情况:

pg_restore: creating EXTENSION plpgsql
pg_restore: creating COMMENT EXTENSION plpgsql
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 2053; 0 0 COMMENT EXTENSION plpgsql
pg_restore: [archiver (db)] could not execute query: ERROR:  must be owner of extension plpgsql
Command was: COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
Run Code Online (Sandbox Code Playgroud)

我正在创建一堆脚本,pg_restore 返回 0 对我来说非常重要,所以我可以忽略这一点这一事实没有任何好处。让我感到困惑的是 IIRC 我需要以 postgres 主用户的身份创建扩展,所以我不知道为什么所有这些扩展的东西最终都在我的转储中。毕竟,我不是语言/扩展的所有者?

无论如何,对于如何摆脱这种情况的任何建议,我将不胜感激。请注意,我知道 -l/-L 开关是如何工作的。然而,仅仅纠正一个简单的扩展注释似乎需要付出太多努力。

postgresql postgresql-9.3 pg-dump

19
推荐指数
3
解决办法
2万
查看次数

标签 统计

pg-dump ×1

postgresql ×1

postgresql-9.3 ×1