Existuje velmi dobrý nástroj, který importuje tabulky do Postgresu ze souboru csv. Je to nástroj příkazového řádku zvaný pgfutter (s binárními soubory pro Windows, linux atd.). Jednou z jeho velkých výhod je, že rozpoznává také názvy atributů/sloupců.
Použití nástroje je jednoduché. Například pokud chcete importovat myCSVfile.csv :
pgfutter --db "myDatabase" --port "5432" --user "postgres" --pw "mySecretPassword" csv myCSVfile.csv
Tím se vytvoří tabulka (nazvaná myCSVfile ) s názvy sloupců převzatými z hlavičky souboru csv. Datové typy budou navíc identifikovány ze stávajících dat.
Několik poznámek:Příkaz pgfutter se liší v závislosti na binárním systému, který používáte, např. může to být pgfutter_windows_amd64.exe (pokud chcete tento příkaz používat často, přejmenujte jej). Výše uvedený příkaz je třeba provést v okně příkazového řádku (např. ve Windows spusťte cmd a zajistěte pgfutter je přístupný). Pokud byste chtěli mít jiný název tabulky, přidejte --table "myTable"; pro výběr konkrétního databázového schématu nám --schema "mySchema" . V případě, že přistupujete k externí databázi, použijte --host "myHostDomain" .
Propracovanější příklad pgfutter importovat myFile do myTable je toto:
pgfutter --host "localhost" --port "5432" --db "myDB" --schema "public" --table "myTable" --user "postgres" --pw "myPwd" csv myFile.csv
S největší pravděpodobností po importu změníte několik typů dat (z textových na číselné):
alter table myTable
alter column myColumn type numeric
using (trim(myColumn)::numeric)