Copiar
Tweet
Qué es copiar
Postgres viene con varias utilidades muy buenas para mover tus datos. Las más obvias son pg_dump y pg_restore para, por supuesto, hacer copias de seguridad y restauraciones de bases de datos. Una utilidad similar de la que se habla menos, pero igualmente valiosa, es la utilidad de copia de Postgres. Copy le permite docopy datos dentro y fuera de las tablas en su base de datos. Soporta varios modos incluyendo:
- binario
- delimitado por tabulaciones
- delimitado por csv
Ya sea para la carga de datos a granel para las pruebas, haciendo un poco de peso ligero ETL, o simplemente agarrando un extracto de datos para enviar a alguien es una utilidad que cada desarrollador querrá utilizar en algún momento.
Copia en acción
Extraer todos los empleados a un archivo delimitado por tabulaciones:
\copy (SELECT * FROM employees) TO '~/employees.tsv';
Extraer todos los empleados a un archivo delimitado por csv:
\copy (SELECT * FROM employees) TO '~/employees.csv' WITH (FORMAT CSV);
Extrayendo todos los empleados a un archivo binario (nótese las comillas alrededor de la palabra Binario):
\copy (SELECT * FROM employees) TO '~/employees.dat' WITH (FORMAT "Binary");
Y para cargar los datos en una tabla el equivalente para cada uno de los anteriores:
\copy employees FROM '~/employees.tsv';\copy employees FROM '~/employees.csv' WITH CSV;\copy employees FROM '~/employees.dat' WITH BINARY;