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)