Klientský program createdb
nepodporuje všechny tyto možnosti.
Vytvořte soubor db_create.sql
:
CREATE DATABASE MydatAbseName
WITH OWNER myadmin
TEMPLATE template0
ENCODING 'SQL_ASCII'
TABLESPACE pg_default
LC_COLLATE 'C'
LC_CTYPE 'C'
CONNECTION LIMIT -1;
Nazvěte to:
psql -U postgres postgres -f C:/path/to/db_create.sql
Trik je v tom, že se připojíte k výchozí údržbě db "postgres" a odtud vytvořte novou databázi. Dělám to s výchozím superuživatelem v mém příkladu s názvem "postgres".psql -f
provede příkazy SQL v daném souboru.
Můžete také provést jeden příkaz pomocí psql -c
(žádný soubor):
psql -U postgres postgres -c "CREATE DATABASE MydatAbseName WITH OWNER Myadmin
EMPLATE template ENCODING 'SQL_ASCII' TABLESPACE pg_default LC_COLLATE 'C'
LC_CTYPE C' CONNECTION LIMIT -1"
Více o vytváření databáze v jemném manuálu zde
a zde
.
Více na psql
.
Ve Windows to vypadá asi takto:
"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres
Poslední "postgres" je název výchozího údržbového db. Pokud jej chcete použít v dávkovém souboru, musíte odpovědět na výzvu k zadání hesla nebo se připojit k uživateli, který má povolen přístup bez zadání hesla. Základy v kapitolách Soubor hesel a Soubor pg_hba.conf manuálu. Více zde: