pg_dump 没有对对象的评论?

Séb*_*ent 5 postgresql pg-dump

有没有办法执行 pg_dump 并排除表/视图和列的 COMMENT ON ?

我广泛使用 COMMENT ON 命令来描述所有对象,并且经常在其中包含换行符以获得更清晰的描述,例如:

COMMENT ON TABLE mytable1 IS 'MAIN TABLE...
NOTES:
1. ...
2. ...
3. ...
';
Run Code Online (Sandbox Code Playgroud)

但是,由于转储中也有换行符,我不能简单地使用 grep -v 'COMMENT ON' 命令删除注释。

还有其他方法可以从转储中快速删除这些 COMMENT ON 吗?

Dav*_*lli 5

使用该--no-comments选项。

例子:

$ pg_dump --no-comments [database] > dump.sql
Run Code Online (Sandbox Code Playgroud)

参考文献:https://www.postgresql.org/docs/12/app-pgdump.html


Chr*_*ers 2

我实际上会通过两阶段转储和恢复来做到这一点。

  1. 按原样转储并恢复数据库,或者使用createdb -T或从旧数据库创建一个新数据库CREATE DATABASE WITH TEMPLATE

  2. 运行以下命令

    Delete from pg_description;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 转储并恢复该数据库。这将确保您不会有任何烦人的依赖项。