Independentemente das ferramentas e linguagens de programação usadas, a abordagem que você deseja usar para isso é a mesma:
-
Em seu programa, durante a inicialização, conecte-se aotemplate1
oupostgres
bancos de dados que estão sempre disponíveis em uma instalação do PostgreSQL e emitem umSELECT 1 FROM pg_database WHERE datname = ?
e como primeiro parâmetro passe o nome do banco de dados desejado.
-
Verifique o conjunto de resultados que é retornado. Se uma linha for retornada, o banco de dados existirá, pronto, nenhuma ação adicional será necessária. Se nenhuma linha for retornada, o banco de dados não existe e você precisa criá-lo, então:
-
Emita umCREATE DATABASE mydatabasename;
com qualquer opção desejada comoOWNER
,ENCODING
, etc de acordo com o manual para criar o banco de dados por conta própria. O novo banco de dados estará vazio.
-
Preencha o banco de dados conectando-se ao novo banco de dados em seu aplicativo e enviando uma sequência de comandos SQL diretamente de seu aplicativo ou invocando opsql
comando no shell para ler umsql
script e envie para o banco de dados. Eu geralmente prefiro executar o SQL diretamente no meu aplicativo.
Se, em vez disso, você quiser criar o banco de dados durante a instalação, isso depende principalmente de você e do seu instalador, mas geralmente será tão simples quanto
CREATE DATABASE
call após o PostgreSQL ter iniciado, então alimentando psql
um roteiro.