Ada alat yang sangat bagus yang mengimpor tabel ke Postgres dari file csv. Ini adalah alat baris perintah yang disebut pgfutter (dengan binari untuk windows, linux, dll.). Salah satu keuntungan besarnya adalah ia juga mengenali nama atribut/kolom.
Penggunaan alat ini sederhana. Misalnya jika Anda ingin mengimpor myCSVfile.csv
:
pgfutter --db "myDatabase" --port "5432" --user "postgres" --pw "mySecretPassword" csv myCSVfile.csv
Ini akan membuat tabel (disebut myCSVfile
) dengan nama kolom yang diambil dari header file csv. Selain itu, tipe data akan diidentifikasi dari data yang ada.
Beberapa catatan:Perintah pgfutter
bervariasi tergantung pada biner yang Anda gunakan, mis. bisa jadi pgfutter_windows_amd64.exe
(ganti namanya jika Anda ingin sering menggunakan perintah ini). Perintah di atas harus dijalankan di jendela baris perintah (misalnya di Windows jalankan cmd
dan pastikan pgfutter
dapat diakses). Jika Anda ingin memiliki nama tabel yang berbeda, tambahkan --table "myTable"
; untuk memilih skema database tertentu kami --schema "mySchema"
. Jika Anda mengakses database eksternal, gunakan --host "myHostDomain"
.
Contoh yang lebih rumit dari pgfutter
untuk mengimpor myFile
ke dalam myTable
apakah ini:
pgfutter --host "localhost" --port "5432" --db "myDB" --schema "public" --table "myTable" --user "postgres" --pw "myPwd" csv myFile.csv
Kemungkinan besar Anda akan mengubah beberapa tipe data (dari teks ke numerik) setelah impor:
alter table myTable
alter column myColumn type numeric
using (trim(myColumn)::numeric)