Em 30 de janeiro de 2012 08:45, Emanuel Araújo <eac...@gmail.com> escreveu:

> pg_dump -h pg84 db01 -Fc -b -v | pg_restore --disable-triggers -v -i -d
> db01_mig
>

Parece que você fez tudo certinho.
Existe um assunto conhecido, cujo link está em [1]. E parece que os valores
do seu banco de dados caem nessa situação.
Resumindo: os valores do seu banco de dados de origem realmente existem na
tabela, mas o banco de dados de destino não o está aceitando porque os
valores são inválidos para a função c que trata a entrada de dados.

Note que as versões do gcc são diferentes entre os dois bancos e,
provavelmente, as bibliotecas envolvidas na compilação do PostgreSQL também
são. Resumindo, a versão mais antiga do gcc aceitou a entrada dos dados mas
a nova não aceita.

Acho que o único jeito de você resolver a situação rapidamente seria:
- exportar para texto puro;
- procurar os valores (usando grep ou sed) e ajustanto-os para o intervalo
aceitável.

Exemplo:
egrep 'E31.' seudump.sql
Veja se são muitas linhas a ajustar.


[1]
http://postgresql.1045698.n5.nabble.com/BUG-Denormal-float-values-break-backup-restore-td4475582.html

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a