csvファイルからPostgresにテーブルをインポートする非常に優れたツールがあります。これはpgfutterと呼ばれるコマンドラインツールです(Windows、Linuxなどのバイナリを使用)。その大きな利点の1つは、属性/列名も認識することです。
ツールの使い方は簡単です。たとえば、myCSVfile.csv
をインポートする場合 :
pgfutter --db "myDatabase" --port "5432" --user "postgres" --pw "mySecretPassword" csv myCSVfile.csv
これにより、テーブル(myCSVfile
と呼ばれます)が作成されます )csvファイルのヘッダーから取得した列名を使用します。さらに、データ型は既存のデータから識別されます。
いくつかの注意事項:コマンドpgfutter
使用するバイナリによって異なります。例: pgfutter_windows_amd64.exe
の可能性があります (このコマンドを頻繁に使用する場合は、名前を変更してください)。上記のコマンドは、コマンドラインウィンドウで実行する必要があります(たとえば、Windowsではcmd
を実行します pgfutter
を確認します アクセス可能です)。別のテーブル名を使用する場合は、--table "myTable"
を追加します。;特定のデータベーススキーマを選択するには、--schema "mySchema"
。外部データベースにアクセスする場合は、--host "myHostDomain"
を使用します 。
pgfutter
のより複雑な例 myFile
をインポートするには myTable
に これは:
pgfutter --host "localhost" --port "5432" --db "myDB" --schema "public" --table "myTable" --user "postgres" --pw "myPwd" csv myFile.csv
ほとんどの場合、インポート後にいくつかのデータ型(テキストから数値)を変更します:
alter table myTable
alter column myColumn type numeric
using (trim(myColumn)::numeric)