PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Criar banco de dados Postgres usando arquivo em lote com [template], [codificação], [proprietário] e um arquivo .sql


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: