El programa cliente createdb
no admite todas esas opciones.
Cree un archivo 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;
Llámalo:
psql -U postgres postgres -f C:/path/to/db_create.sql
El truco aquí es conectarse a la base de datos de mantenimiento predeterminada "postgres" y cree la nueva base de datos desde allí. Lo hago con el superusuario predeterminado llamado "postgres" en mi ejemplo.psql -f
ejecuta los comandos SQL en el archivo dado.
También podría simplemente ejecutar un solo comando con psql -c
(sin archivo involucrado):
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"
Más información sobre cómo crear una base de datos en el excelente manual aquí
y aquí
.
Más información sobre psql
.
En Windows, se parece a esto:
"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres
El último "postgres" es el nombre de la base de datos de mantenimiento predeterminada. Si desea utilizarlo en un archivo por lotes, debe responder a una solicitud de contraseña o conectarse con un usuario al que se le permita el acceso sin proporcionar una contraseña. Conceptos básicos en los capítulos El archivo de contraseñas y El archivo pg_hba.conf del manual Más aquí: