Istnieje bardzo dobre narzędzie, które importuje tabele do Postgresa z pliku csv. Jest to narzędzie wiersza poleceń o nazwie pgfutter (z plikami binarnymi dla systemu Windows, Linux itp.). Jedną z jego dużych zalet jest to, że rozpoznaje również nazwy atrybutów/kolumn.
Korzystanie z narzędzia jest proste. Na przykład, jeśli chcesz zaimportować myCSVfile.csv
:
pgfutter --db "myDatabase" --port "5432" --user "postgres" --pw "mySecretPassword" csv myCSVfile.csv
Spowoduje to utworzenie tabeli (o nazwie myCSVfile
) z nazwami kolumn pobranymi z nagłówka pliku csv. Dodatkowo typy danych zostaną zidentyfikowane na podstawie istniejących danych.
Kilka uwag:Polecenie pgfutter
różni się w zależności od używanego pliku binarnego, np. może to być pgfutter_windows_amd64.exe
(zmień jego nazwę, jeśli zamierzasz często używać tego polecenia). Powyższe polecenie należy wykonać w oknie wiersza poleceń (np. w systemie Windows uruchom cmd
i upewnij się, że pgfutter
jest dostępny). Jeśli chcesz mieć inną nazwę tabeli, dodaj --table "myTable"
; aby wybrać konkretny schemat bazy danych:--schema "mySchema"
. W przypadku dostępu do zewnętrznej bazy danych użyj --host "myHostDomain"
.
Bardziej rozbudowany przykład pgfutter
aby zaimportować myFile
do myTable
czy to jest:
pgfutter --host "localhost" --port "5432" --db "myDB" --schema "public" --table "myTable" --user "postgres" --pw "myPwd" csv myFile.csv
Najprawdopodobniej po imporcie zmienisz kilka typów danych (z tekstowych na numeryczne):
alter table myTable
alter column myColumn type numeric
using (trim(myColumn)::numeric)