Има много добър инструмент, който импортира таблици в Postgres от csv файл. Това е инструмент от командния ред, наречен pgfutter (с двоични файлове за windows, linux и т.н.). Едно от големите му предимства е, че разпознава и имената на атрибути/колони.
Използването на инструмента е просто. Например, ако искате да импортирате myCSVfile.csv
:
pgfutter --db "myDatabase" --port "5432" --user "postgres" --pw "mySecretPassword" csv myCSVfile.csv
Това ще създаде таблица (наречена myCSVfile
) с имената на колоните, взети от заглавката на csv файла. Освен това типовете данни ще бъдат идентифицирани от съществуващите данни.
Няколко бележки:Командата pgfutter
варира в зависимост от двоичния файл, който използвате, напр. може да е pgfutter_windows_amd64.exe
(преименувайте го, ако възнамерявате да използвате тази команда често). Горната команда трябва да се изпълни в прозорец на командния ред (напр. в Windows изпълнете cmd
и гарантирайте pgfutter
е достъпен). Ако искате да имате различно име на таблица, добавете --table "myTable"
; за да изберете конкретна схема на база данни, използваме --schema "mySchema"
. В случай, че имате достъп до външна база данни, използвайте --host "myHostDomain"
.
По-сложен пример за pgfutter
за импортиране на myFile
в myTable
това ли е:
pgfutter --host "localhost" --port "5432" --db "myDB" --schema "public" --table "myTable" --user "postgres" --pw "myPwd" csv myFile.csv
Най-вероятно ще промените няколко типа данни (от текстови в числови) след импортирането:
alter table myTable
alter column myColumn type numeric
using (trim(myColumn)::numeric)