Il programma client createdb
non supporta tutte queste opzioni.
Crea un file 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;
Chiamalo:
psql -U postgres postgres -f C:/path/to/db_create.sql
Il trucco qui è connettersi al db di manutenzione predefinito "postgres" e creare il nuovo database da lì. Lo faccio con il superutente predefinito chiamato "postgres" nel mio esempio.psql -f
esegue i comandi SQL nel file specificato.
Potresti anche eseguire un singolo comando con psql -c
(nessun file coinvolto):
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"
Maggiori informazioni sulla creazione di un database nel manuale raffinato qui
e qui
.
Ulteriori informazioni su psql
.
Su Windows, è simile a questo:
"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres
L'ultimo "postgres" è il nome del db di manutenzione predefinito. Se vuoi usarlo in un file batch devi rispondere a una richiesta di password o connetterti con un utente a cui è consentito l'accesso senza fornire una password. Nozioni di base nei capitoli Il file della password e Il file pg_hba.conf del manuale. Altro qui: