Клиентская программа createdb
не поддерживает все эти опции.
Создать файл 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;
Назовите это:
psql -U postgres postgres -f C:/path/to/db_create.sql
Хитрость здесь в том, чтобы подключиться к базе данных обслуживания по умолчанию "postgres" и создать оттуда новую базу данных. Я делаю это с суперпользователем по умолчанию с именем "postgres" в моем примере.
psql -f
выполняет команды SQL в данном файле.
Вы также можете просто выполнить одну команду с psql -c
(файл не задействован):
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"
Подробнее о создании базы данных в прекрасном руководстве здесь и здесь .
Подробнее о psql .
В Windows это выглядит примерно так:
"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres
Последний "postgres" - это имя базы данных обслуживания по умолчанию.
Если вы хотите использовать его в пакетном файле, вы должны ответить на запрос пароля или связаться с пользователем, которому разрешен доступ без предоставления пароля. Основы в главах Файл паролей и Файл pg_hba.conf руководства. Подробнее здесь: