Der er et meget godt værktøj, der importerer tabeller til Postgres fra en csv-fil. Det er et kommandolinjeværktøj kaldet pgfutter (med binære filer til windows, linux osv.). En af dens store fordele er, at den også genkender attribut-/kolonnenavnene.
Brugen af værktøjet er enkel. For eksempel hvis du vil importere myCSVfile.csv :
pgfutter --db "myDatabase" --port "5432" --user "postgres" --pw "mySecretPassword" csv myCSVfile.csv
Dette vil oprette en tabel (kaldet myCSVfile ) med kolonnenavnene taget fra csv-filens header. Derudover vil datatyperne blive identificeret ud fra de eksisterende data.
Et par bemærkninger:Kommandoen pgfutter varierer afhængigt af den binære du bruger, f.eks. det kunne være pgfutter_windows_amd64.exe (Omdøb den, hvis du har til hensigt at bruge denne kommando ofte). Ovenstående kommando skal udføres i et kommandolinjevindue (kør f.eks. cmd i Windows og sørg for pgfutter er tilgængelig). Hvis du gerne vil have et andet tabelnavn, skal du tilføje --table "myTable"; for at vælge et bestemt databaseskema bruger vi --schema "mySchema" . Hvis du har adgang til en ekstern database, brug --host "myHostDomain" .
Et mere udførligt eksempel på pgfutter for at importere myFile ind i myTable er denne:
pgfutter --host "localhost" --port "5432" --db "myDB" --schema "public" --table "myTable" --user "postgres" --pw "myPwd" csv myFile.csv
Mest sandsynligt vil du ændre nogle få datatyper (fra tekst til numerisk) efter importen:
alter table myTable
alter column myColumn type numeric
using (trim(myColumn)::numeric)