pg_dump自定义数据类型

6
我正在将我的服务器上的部分表格转移到本地电脑上进行操作。由于本地电脑的空间限制,无法转储整个数据库。其中一个表的一列是自定义数据类型,在恢复时出现以下错误: pg_restore:[archiver(db)]无法执行查询:ERROR:type“custom_data_type”不存在
我有两种方法可以解决这个问题,但我很难找到在线说明:
1.确保在`pg_dump`中包括表所依赖的数据类型 2.查找自定义数据类型的创建脚本

你在整个数据库上进行了 pg_dump,但类型创建没有包括进来? - Politank-Z
不,我只是将一些表格导出,以便在本地进行操作。 - raphael
@raphael,--schema-only 对你有用吗?我有类似的问题,但我找不到在转储中包含用户定义类型的方法。 - michal.dul
1
@michal.dul,是的,它对我起作用了。我确实不得不整理很多SQL才找到它。可能只需转储“public”模式。 - raphael
1个回答

6
pg_dump有以下选项:

-s --schema-only

仅导出对象定义(模式),不包含数据。

该选项相当于--data-only的反选。出于历史原因,它与指定--section=pre-data --section=post-data类似但并非完全相同。

(请勿将此选项与--schema选项混淆,后者使用“schema”一词表示不同的意思。)

除非您的源数据库具有大量DDL,否则该选项对您应该没有问题。如果您的源数据库确实包含大量DDL,则可以使用文本编辑器手动从pg_dump输出中提取类型创建脚本。

这是一个研究数据库,所以被很多人使用...相当混乱,转储文件包含了大量的SQL语句。但是这对我来说是有效的。 - raphael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接