Para exportar o arquivo em outro servidor você tem duas opções:
- Criando uma pasta compartilhada entre os dois servidores, para que o banco de dados também tenha acesso a este diretório.
COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;
- Acionar a exportação do servidor de destino usando o
STDOUT
deCOPY
. Usando opsql
você pode conseguir isso executando o seguinte comando:
psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv
EDITAR :Resolvendo o problema de campos contendo feeds de linha (
\n
) Caso você queira se livrar dos feeds de linha, use o
REPLACE
função. Exemplo:
SELECT E'foo\nbar';
?column?
----------
foo +
bar
(1 Zeile)
Removendo o avanço de linha:
SELECT REPLACE(E'foo\nbaar',E'\n','');
replace
---------
foobaar
(1 Zeile)
Portanto, sua
COPY
deve ficar assim:COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;