Para que puedas exportar el archivo en otro servidor tienes dos opciones:
- Crear una carpeta compartida entre los dos servidores, para que la base de datos también tenga acceso a este directorio.
COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;
- Desencadenar la exportación desde el servidor de destino mediante
STDOUT
deCOPY
. Usandopsql
puede lograr esto ejecutando el siguiente comando:
psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv
EDITAR :Abordar el problema de los campos que contienen saltos de línea (\n
)
En caso de que quiera deshacerse de los saltos de línea, use REPLACE
función.
Ejemplo:
SELECT E'foo\nbar';
?column?
----------
foo +
bar
(1 Zeile)
Eliminando el salto de línea:
SELECT REPLACE(E'foo\nbaar',E'\n','');
replace
---------
foobaar
(1 Zeile)
Así que tu COPY
debería verse así:
COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;