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)