Preciso de uma solução: comando psql não consegue importar dump plain text contendo NULL (\N) [RESOL

1. Preciso de uma solução: comando psql não consegue importar dump plain text contendo NULL (\N) [RESOL

Mestre Kame
mlgrassi

(usa Debian)

Enviado em 24/08/2020 - 16:18h

Preciso restaurar um banco de dados versão 10.
Para isso, tenho um dump gerado no formato plain text (.SQL) e não tem jeito de eu conseguir restaurar ele através do comando psql. Em determinado momento ocorre o erro Invalid Command \N. Isso ocorre por que no conteúdo do arquivo, na parte onde constam as instruções do copy há campos onde deve ser inserido o valor NULL, e, como já se sabe, o pg_dump quando gera um plain text considera que NULL é igual a \N e no momento da geração do .SQL coloca os caracteres \N para representar o nulo. Só que acontece que quando tentamos realizar o restore, o \N não é reconhecido por default pelo comando psql, e por isso não estou conseguindo restaurar o DUMP. Já tentei pelo pgAdmin II, III e IV e também pelo psql e pg_restore.
Eu sei que este problema poderia facilmente ser solucionado gerando-se um novo dump através do comando pg_dump e incluindo-se o parâmetro --inserts, porém não tenho mais a base de dados para gerar o dump (se eu tivesse nem abriria esse post aqui). A única coisa que me resta é este SQL plain text. O que eu faço?


  


2. Re: Preciso de uma solução: comando psql não consegue importar dump plain text contendo NULL (\N)

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 25/08/2020 - 16:03h

Passei pelo mesmo problema a uns tempos atrás. O que ocorre é que mesmo o psql retornando a mensagem "invalid command \N" o carregamento do dump continuava normalmente, mas em algum ponto ocorria um erro que impedia a restauração completa da base. Então pra você descobrir onde ocorre esse erro, rode o psql assim:

psql -v ON_ERROR_STOP=1 


E ao tentar restaurar a base, no primeiro erro encontrado, o psql irá encerrar seu processamento. Agora basta analisar a mensagem de erro "verdadeira".

Veja se isso ajuda.


3. Re: Preciso de uma solução: comando psql não consegue importar dump plain text contendo NULL (\N) [RESOL

Afonso T Freitas
atf

(usa openSUSE)

Enviado em 28/08/2020 - 09:57h

Se dá "Invalid command" não parece ser problema com o "\N" pois assim, seria acusado um erro de conteúdo no registro. Pode ser alguma má formação no arquivo. Caso a base não seja muito grande, é bom fazer uma análise detalhada no arquivo ".sql".

LinuxUser#142898


4. Re: Preciso de uma solução: comando psql não consegue importar dump plain text contendo NULL (\N) [RESOL

Mestre Kame
mlgrassi

(usa Debian)

Enviado em 28/08/2020 - 16:38h

Ok muito obrigado. E era isso mesmo: versão de arquivo plain text gerado.
A importatação de um .sql deve ser realizada obrigatoriamente pela mesma versão do postgres que a gerou. Instalei a versão correspondente ao cabeçalho do arquivo e deu certo.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts