Er is een zeer goede tool die tabellen in Postgres importeert vanuit een csv-bestand. Het is een opdrachtregelprogramma genaamd pgfutter (met binaire bestanden voor windows, linux, enz.). Een van de grote voordelen is dat het ook de namen van attributen/kolommen herkent.
Het gebruik van de tool is eenvoudig. Als u bijvoorbeeld myCSVfile.csv . wilt importeren :
pgfutter --db "myDatabase" --port "5432" --user "postgres" --pw "mySecretPassword" csv myCSVfile.csv
Dit zal een tabel maken (genaamd myCSVfile ) met de kolomnamen uit de kop van het csv-bestand. Bovendien zullen de gegevenstypes worden geïdentificeerd aan de hand van de bestaande gegevens.
Een paar opmerkingen:Het commando pgfutter varieert afhankelijk van het binaire bestand dat u gebruikt, b.v. het zou pgfutter_windows_amd64.exe kunnen zijn (hernoem het als u van plan bent deze opdracht vaak te gebruiken). De bovenstaande opdracht moet worden uitgevoerd in een opdrachtregelvenster (bijvoorbeeld in Windows voer cmd uit en zorg ervoor dat pgfutter toegankelijk is). Als u een andere tabelnaam wilt hebben, voeg dan --table "myTable" toe; om een bepaald databaseschema te selecteren, ons --schema "mySchema" . Als u een externe database gebruikt, gebruik dan --host "myHostDomain" .
Een uitgebreider voorbeeld van pgfutter om myFile te importeren in myTable is deze:
pgfutter --host "localhost" --port "5432" --db "myDB" --schema "public" --table "myTable" --user "postgres" --pw "myPwd" csv myFile.csv
Hoogstwaarschijnlijk zult u na het importeren enkele gegevenstypen (van tekst naar numeriek) wijzigen:
alter table myTable
alter column myColumn type numeric
using (trim(myColumn)::numeric)