2017-09-24 3 views
0

Ich versuche, Daten aus einer CSV-Datei in eine psql-Tabelle zu seed. Dies ist die Setup:Wie werden Daten aus einer CSV-Datei in eine Postgres-Datenbanktabelle eingefügt?

data.csv:
name,price,section Aluminum Foil,8.84,miscellaneous Apples,10.81,produce

Ich bin mit dem pg Modul in Knoten Verbindung zur Datenbank grocery_store, die 1 Tabelle id, name, price and sectiongrocery_items mit Spalten.

const Client = require('pg').Client 
const connectionString = 'postgresql://localhost:5432/grocery_store' 
const pg = new Client({ connectionString: connectionString }) 

Wie kann ich jetzt Samen Daten aus data.csv in den grocery_items Tisch?

Ich habe versucht, das pg-copy-streams Modul und schlagen sie vor, zu tun:

var fs = require('fs'); 
var pg = require('pg'); 
var copyFrom = require('pg-copy-streams').from; 

pg.connect(function(err, client, done) { 
    var stream = client.query(copyFrom('COPY my_table FROM STDIN')); 
    var fileStream = fs.createReadStream('some_file.tsv') 
    fileStream.on('error', done); 
    fileStream.pipe(stream).on('finish', done).on('error', done); 
}); 

Aber ich habe pg.connect keine Funktion Fehler ist, wenn ich das versucht.

+0

Mysql ein anderes Produkt. – Shadow

+0

@baibhavx hast du das zur Arbeit gebracht? Ich bin neugierig auf die gleiche Frage. –

+1

@MihirPatel '\ kopiere grocery_items (Name, Preis, Abschnitt) FROM './data.csv' DELIMITER ',' CSV HEADER;' löste mein Problem! – baibhavx

Antwort

1

Es sollte gut funktionieren.

Erstellen Sie Ihre Tabelle:

CREATE TABLE my_table 
(name varchar(50), price int, section varchar(50)); 

Kopieren der Daten aus CSV in der Tabelle Datei:

COPY my_table FROM '/path/to/csv/my_table.txt' WITH (FORMAT csv); 
Verwandte Themen