O programa cliente
createdb
não suporta todas essas opções.Crie um arquivo
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;
Chame-o:
psql -U postgres postgres -f C:/path/to/db_create.sql
O truque aqui é conectar-se ao manutenção padrão db "postgres" e crie o novo banco de dados a partir daí. Eu faço isso com o superusuário padrão chamado "postgres" no meu exemplo.
psql -f
executa os comandos SQL no arquivo fornecido. Você também pode executar um único comando com
psql -c
(nenhum arquivo envolvido):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"
Saiba mais sobre como criar um banco de dados no bom manual aqui e aqui .
Mais informações sobre psql .
No Windows, é algo assim:
"C:\Program Files\PostgreSQL\verson_number\bin\psql.exe" -U user -f C:/path/to/db_create.sql postgres
O último "postgres" é o nome do banco de dados de manutenção padrão. Se você quiser usá-lo em um arquivo de lote, terá que responder a um prompt de senha ou conectar-se a um usuário que tenha permissão de acesso sem fornecer uma senha. Noções básicas nos capítulos O arquivo de senha e O arquivo pg_hba.conf do manual. Mais aqui: