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)