Pergunta

Eu tenho um backup do PostGresql feito com o phppgadmin usando exportação> cópia (em vez disso, cópia> sql, que é realmente o que eu preciso).

O arquivo contém entradas como esta:

COPY tablename(id, field) FROM stdin;
...

Como converter este arquivo em formato SQL?

INSERT INTO tablename...

Quero usar o pgadmin para importar esse arquivo usando o comando execute sql.

Foi útil?

Solução

Você não pode converter isso em formato SQL (pelo menos não direto).

Se você não pode exportar, então a opção mais simples é ignorar phppgadmin, faça login no seu servidor e execute algo como

cat [yourdump.sql]  | psql [your connections args]

Se você não tiver acesso do shell ao seu servidor, você pode tentar fazer o upload do arquivo (via SFTP ou FTP) e carregá -lo por Thorugh Phppgadmin com "COPY <table> FROM <path_to_file_on_server>". Mas se houver muitas tabelas, você deve (acredito) dividir o arquivo e fazê -lo um de cada vez.

http://phppgadmin.sourceforge.net/?page=faq

Outras dicas

Não conheço uma maneira ou uma ferramenta que possa converter "copiar" em instruções "Inserir".

Mas com a ferramenta de linha de comando "pg_dump", você pode criar um arquivo de despejo de banco de dados com instruções "Inserir" em vez de "copiar". Simples use o argumento "-coluna-inserts" (pode ser "--inserts" também é bom para você).

EDITAR:

O que você pode fazer é:

  1. Crie um novo banco de dados PostGres em sua máquina local
  2. Importe seu arquivo de despejo de banco de dados para o novo banco de dados criado

    psql -U <dbuser> <database> < dump.sql
    
  3. E crie um dump pós -gres com "--column-inserts" a partir desse banco de dados

    pg_dump --column-inserts -U <dbuser> <database> > dumpWithInserts.sql
    

Podes tentar Cópia do programa Sintaxe, disponível desde o PostGresql 9.3

Por exemplo:COPY tbl_customers (id, address_id, insurance_id, fullname, secret_code ...) FROM PROGRAM 'echo "1 2 \N Ivan Ivanov 42 ..."'

Eu escrevi uma ferramenta para converter o depósito de cópia para inserções de dump:

https://github.com/freddez/pg-dump2insert

Você pode usá -lo para carregar um despejo em outro banco de dados ou pesquisar valores excluídos específicos, por exemplo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top