最近我从 Postgresql 8.4.11 升级到 9.1.3。我在这个过程中使用了 pg_dump。现在我收到一个错误:
错误:没有为具有可整理类型 citext 的列“vin”导出整理
提示:使用 COLLATE 子句显式设置整理。
这是我之前遇到的问题的延续。发行说明中建议的修复似乎没有捕获自定义域。似乎 8.4 中的CREATE DOMAIN语句甚至不支持该COLLATE
子句。
这就是我创建vin
类型的方式,
CREATE DOMAIN inventory.valid_vin AS citext
CHECK ( inventory.valid_vin( VALUE ) );
有关这方面的更多信息,请在该线程上找到我们的信件:
问题
问题就出自马口,Tom Lane,
来源: http: //archives.postgresql.org/pgsql-general/2012-05/msg00262.php
*
我正在创建 citext 但是我的特定转储已经创建了它,没有什么特别的。因此,如果您在 citext 上有域,则不支持从 8.3 -> 9.1 进行转储/恢复。
解决方案
您可以先执行以下操作来解决此问题:
CREATE EXTENSION citext
在加载转储之前。DOMAINS
citext 上运行。