2017-09-24 17 views
0

私は、.csvファイルからpsqlテーブルにデータをシードしようとしています。 これはセットアップです:.csvファイルからpostgresデータベーステーブルにデータをシードする方法は?

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

私は列id, name, price and sectionと1台grocery_itemsを持つデータベースgrocery_storeに接続するためのノードでpgモジュールを使用しています。

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

は、どのように私は今grocery_itemsテーブルにdata.csvからデータをシードすることができますか?

私はpg-copy-streamsモジュールを試してみたし、彼らが行うことをお勧め:

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); 
}); 

しかし、私はpg.connectが、私はこれをしようとした機能のエラーではありませんました。

+0

MySQLは異なる製品です。 – Shadow

+0

@baibhavxあなたはこれを動作させましたか?私は同じ質問について興味があります。 –

+1

@MihirPatel '\ copy grocery_items(名前、価格、セクション)FROM './data.csv' DELIMITER '、' CSV HEADER; '問題を解決しました! – baibhavx

答えて

1

正常に動作するはずです。

あなたのテーブルを作成します。あなたのCSVから

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

コピーデータがテーブルにファイル:

COPY my_table FROM '/path/to/csv/my_table.txt' WITH (FORMAT csv); 
関連する問題