PostgreSQL Prático/Administração/Importar e Exportar
9.2 - Importar e Exportar
[editar | editar código-fonte]Estando na console e usando pg_dumpall e psql:
Efetuando backup:
pg_dumpall > bancos.sql - Para preservar os OIDs use a opção -o no pg_dumpall.
Restore de seus dados:
psql -d postgres -f bancos.sql
Para importar scripts gerados via pg_dump de dentro do psql devemos utilizar o comando
\i /path/script.sql
\i ./script.sql -- Também para o windows com o arquivo no diretório atual
Para importar arquivos texto com delimitadores, tipo TXT, CSV ou binários utilizamos os comandos do banco (psql), como usuário do banco:
Importando:
\COPY tabela FROM ‘script.csv’
\COPY paises FROM 'paises.csv';
Exportando:
CREATE TEMP TABLE paises AS SELECT * FROM teste WHERE nome LIKE '%tina%';
\COPY paises TO '/usr/teste.copy';
Com Delimitadores
\COPY tabela FROM '/arquivo.csv' DELIMITERS '|';
\COPY tabela TO '/arquivo.txt' DELIMITERS '|';
Obs.: O arquivo teste.copy deve ter permissão de escrita para o user do banco.
Importar uma planilha do Excel ou do Calc do OpenOffice para uma tabela:
Gerando um arquivo CSV no OpenOffice Calc
- Abrir calc e selecionar e copiar a área a importar
- Abrir uma nova planilha
- Clicar com o botão direito sobre a primeira célula e Colar Especial
- Desmarque Colar tudo, marque Números, desmarque Fórmulas e OK
- Tecle Ctrl+S para salvar
- Em Tipo de arquivo escolha Texto CSV, digite o nome e Salvar. Confirme
- Como Delimitador de Campo escolha Tabulação
- Em Delimitador de texto delete as aspas e OK
- Ignore a mensagem de erro, caso apareça.
Importar o arquivo texto CSV para uma tabela com estrutura semelhante à do arquivo csv:
su - postgres
psql nomebanco
\copy nometabela from /home/nomearquivo.csv
No Windows
\copy nometabela from ./arquivo.csv -- o arquivo estando no path do usuário
Exportar um Banco Access para uso no PostgreSQL ou outros bancos
Selecionar a tabela e Exportar
Escolher o tipo de arquivos Texto (txt, csv, ...)
Em avançado: Delimitador de campos – Tabulação
Qualificador de texto – remover (deixar em branco)