PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Erstellen Sie eine Postgres-Datenbank mithilfe einer Stapeldatei mit [Vorlage], [Codierung], [Eigentümer] und einer .sql-Datei

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: