Das Client-Programm createdb
unterstützt nicht alle diese Optionen.
Erstellen Sie eine Datei 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;
Nennen Sie es:
psql -U postgres postgres -f C:/path/to/db_create.sql
Der Trick dabei ist, sich mit der Standard-Wartungsdatenbank "postgres" zu verbinden und erstellen Sie von dort aus die neue Datenbank. Ich mache das mit dem Standard-Superuser in meinem Beispiel "postgres" genannt.psql -f
führt die SQL-Befehle in der angegebenen Datei aus.
Sie könnten auch einfach einen einzelnen Befehl mit psql -c
ausführen (keine Datei beteiligt):
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"
Mehr zum Erstellen einer Datenbank im feinen Handbuch hier
und hier
.
Mehr zu psql
.
Unter Windows sieht es ungefähr so aus:
"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres
Das letzte "postgres" ist der Name der Standardwartungsdatenbank. Wenn Sie es in einer Batchdatei verwenden möchten, müssen Sie eine Kennwortabfrage beantworten oder sich mit einem Benutzer verbinden, dem der Zugriff ohne Angabe eines Kennworts gestattet ist. Grundlagen in den Kapiteln Die Passwortdatei und Die pg_hba.conf-Datei des Handbuchs. Mehr hier: