我想将 postgres 数据库的一些表备份到另一个空数据库中。为此,我使用带有 -t 选项的 pg_dump,但是当我恢复它时,由于缺少域而出现错误。
我发现的唯一解决方案是以 --schema-only 模式转储数据库,删除所有与域无关的行,并在恢复表之前将其恢复到空数据库中。
问题是我需要快速进行备份,但有时我会操作大数据库,因此转储很长,即使在 --schema-only 模式下也是如此。
那么有没有一种最快的方法将域导出到另一个数据库?
最佳答案
最简单的方法是创建自定义格式的仅架构转储,提取目录,识别 CREATE DOMAIN
语句并仅从转储中提取那些内容:
pg_dump --schema-only --format=custom --file=dump dbname
pg_restore --list dump | grep DOMAIN >domlist
pg_restore --use-list=domlist --file=domain.sql dump
这将创建一个文件domain.sql
,其中包含所有域。
关于postgresql - 在 postgres 中导出域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77415806/