Recentemente, atualizei do Postgresql 8.4.11 para 9.1.3. Eu usei pg_dump no processo. Agora estou recebendo um erro:
ERRO: nenhuma collation foi derivada para a coluna "vin" com citext do tipo collatable
DICA: Use a cláusula COLLATE para definir a collation explicitamente.
Esta é uma continuação do problema que tive anteriormente . Parece que a correção sugerida nas notas de versão não detectou domínios personalizados . Parece que a instrução CREATE DOMAIN em 8.4 nem mesmo suportava a COLLATE
cláusula.
Foi assim que criei o vin
tipo,
CREATE DOMAIN inventory.valid_vin AS citext
CHECK ( inventory.valid_vin( VALUE ) );
Para mais informações sobre isso, encontre nossa correspondência neste tópico:
Problema
O problema vem direto da boca do cavalo, Tom Lane,
Fonte: http://archives.postgresql.org/pgsql-general/2012-05/msg00262.php
*
Eu estava criando o citext, no entanto, meu dump específico o criou, não havia nada de especial.Portanto, um despejo/restauração de 8.3 -> 9.1 não é suportado se você tiver um domínio sobre citext.
Solução
Você pode contornar esse problema fazendo primeiro:
CREATE EXTENSION citext
antes de carregar o dump.DOMAINS
citext.