Estou tentando restaurar meu arquivo de despejo, mas causou um erro:
psql:psit.sql:27485: invalid command \N
Há uma solução? Eu procurei, mas não obtive uma resposta clara.
sql
postgresql
dump
Vivek Vikranth
fonte
fonte
create table...
falha no início, mas o carregamento continua.(pg_restore ... | psql ...) 2>&1 | less
Eu recebo a mesma mensagem de erro ao tentar restaurar de um despejo binário. Simplesmente usei
pg_restore
para restaurar meu despejo e evitar completamente os\N
erros, por exemplopg_restore -c -F t -f your.backup.tar
Explicação dos comutadores:
-f, --file=FILENAME output file name -F, --format=c|d|t backup file format (should be automatic) -c, --clean clean (drop) database objects before recreating
fonte
Eu sei que este é um post antigo, mas me deparei com outra solução: o postgis não estava instalado na minha nova versão, o que me causou o mesmo erro no pg_dump
fonte
Também encontrei esse erro no passado. Pavel está correto, geralmente é um sinal de que algo no script criado por pg_restore está falhando. Devido a todos os erros "/ N", você não está vendo o problema real na parte superior da saída. Eu sugiro:
pg_restore --table=orders full_database.dump > orders.dump
)orders.dump
e exclua um monte de registros)No meu caso, eu ainda não tinha a extensão "hstore" instalada, portanto, o script estava falhando no topo. Instalei o hstore no banco de dados de destino e estava de volta aos negócios.
fonte
Você pode gerar seu dump usando instruções INSERTS, com o parâmetro --inserts.
fonte
Instale postgresql- (sua versão) -postgis-scripts
fonte
A mesma coisa aconteceu comigo hoje. Eu lidei com o problema fazendo o dumping com o comando --inserts.
O que eu faço é:
1) pg_dump com inserções:
2) psql (restaure seu arquivo despejado)
Nota-1) Certifique-se de que adicionar arquivo de saída aumente a velocidade de importação.
Nota-2) Não se esqueça de criar tabela com exatamente o mesmo nome e colunas antes de importar com o psql.
fonte
Na minha experiência recente, é possível obter esse erro quando o problema real não tem nada a ver com caracteres de escape ou novas linhas. No meu caso, eu criei um dump do banco de dados A com
pg_dump -a -t table_name > dump.sql
e estava tentando restaurá-lo no banco de dados B
psql < dump.sql
(depois de atualizar os envios adequados, é claro).O que eu finalmente descobri foi que o dump, embora fosse
data-only
(a-a
opção , para que a estrutura da tabela não faça parte explicitamente do despejo), era específica do esquema. Isso significava que, sem modificar manualmente o dump, eu não poderia usar um dump gerado a partirschema1.table_name
para preencherschema2.table_name
. A modificação manual do dump foi fácil, o esquema é especificado nas primeiras 15 linhas, aproximadamente.fonte
Na maioria das vezes, a solução é instalar o
postgres-contrib
pacote.fonte
Para mim, usando o postgreSQL 10 no SUSE 12, resolvi o
invalid command \N
erro aumentando o espaço em disco. A falta de espaço em disco estava causando o erro para mim. Você pode saber se está sem espaço em disco se olhar para o sistema de arquivos para onde seus dados estão indo nadf -h
saída. Se o sistema de arquivos / montagem estiver 100% usado, depois de fazer algo comopsql -f db.out postgres
(consulte https://www.postgresql.org/docs/current/static/app-pg-dumpall.html ), você provavelmente precisará aumentar o espaço em disco disponível .fonte
Eu tive o mesmo problema, criei um novo banco de dados e
invalid command \N
restaurei com o psql. Eu o resolvi definindo o mesmo espaço de tabela no banco de dados antigo.Por exemplo, o backup antigo do banco de dados tinha o espaço de tabela "pg_default", eu defini o mesmo espaço de tabela para o novo banco de dados e o erro acima foi eliminado!
fonte
Eu segui todos esses exemplos e todos falharam com o erro que estamos falando:
Copie uma tabela de um banco de dados para outro no Postgres
O que funcionou foi a sintaxe com -C , veja aqui:
fonte