postgresql - 在 postgres 中导出域

标签 postgresql dump database-backups pg-dump pg-restore

我想将 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/

相关文章:

sql - Postgres 更新前一行

mysql - 键不在表中,但它是

mysql - 如何只导出MySQL外键

database - 转换 SQL 。 BAK 到 SQL backpac 格式

postgresql - 撤销角色对 postgres 数据库的访问

java - Hibernate PostgreSQL 自动生成的增量代码字段有什么乱七八糟的?

database - psql 转储表和内存使用情况

ios - iOS 中的转储 View

backup - 物理备份和逻辑备份有什么区别?

google-app-engine - 如何确保来自备份的 Datastore 项目中的唯一 ID?