A partire da Export Postgres table as JSON, è possibile selezionare i dati desiderati dalla tabella, convertirli in JSON e quindi copy
in un file. Ecco uno SQLFiddle showing the JSON conversion.
Giochiamo con
CREATE TABLE data (id integer, name varchar(255), quantity integer);
INSERT INTO data VALUES
(1, 'apple', 10),
(2, 'banana', 20),
(3, 'cherry', 30)
;
In primo luogo, ottenere i dati nel formato che si desidera, con un minor numero di colonne e le eventuali modifiche di nome.
SELECT
name AS fruit_name,
quantity
FROM data;
Poi, mettere questo in una sottoquery e convertirlo in JSON.
SELECT row_to_json(fruit_data) FROM (
SELECT
name AS fruit_name,
quantity
FROM data
) fruit_data;
Infine, avvolgere tutto in copy
.
COPY (
SELECT row_to_json(fruit_data) FROM (
SELECT
name AS fruit_name,
quantity
FROM data
) fruit_data
) TO 'a.file';
Questo stamperà ogni riga come linea di JSON per riga al file
{"fruit_name":"apple","quantity":10}
{"fruit_name":"banana","quantity":20}
{"fruit_name":"cherry","quantity":30}
Postgres probabilmente può costruire questi in un array prima di uscita, ma penso che sarebbe più semplice da postelaborare il file in un array se questo è il formato che desideri.
Non capisco questo 'SELECT row_to_json (fruit_data) FROM () fruit_data;' - cosa è fruit_data? –
imatahi
Cosa significa ""? –
imatahi
Cosa c'è ''? Potresti essere più specifico? –
imatahi