Indipendentemente dagli strumenti e dai linguaggi di programmazione utilizzati, l'approccio che vorrai utilizzare per questo è lo stesso:
-
Nel tuo programma, durante l'avvio connettiti al
template1
opostgres
database che sono sempre disponibili in un'installazione PostgreSQL ed emettono unSELECT 1 FROM pg_database WHERE datname = ?
e come primo parametro passa il nome del database desiderato. -
Controllare il set di risultati restituito. Se viene restituita una riga, il database esiste, il gioco è fatto, non sono necessarie ulteriori azioni. Se non viene restituita alcuna riga, il database non esiste ed è necessario crearlo, quindi:
-
Emettere un
CREATE DATABASE mydatabasename;
con qualsiasi opzione desiderata comeOWNER
,ENCODING
, ecc. secondo il manuale per creare il database da solo. Il nuovo database sarà vuoto. -
Popola il database collegandoti al nuovo database nella tua applicazione e inviando una sequenza di comandi SQL direttamente dalla tua applicazione, oppure invocando il
psql
comando sulla shell per leggere unsql
script e inviarlo al database. In genere preferirei eseguire l'SQL direttamente all'interno della mia applicazione.
Se invece vuoi creare il DB durante l'installazione dipende principalmente da te e dal tuo programma di installazione, ma di solito sarà semplice come un CREATE DATABASE
chiama dopo l'avvio di PostgreSQL, quindi alimenta psql
uno script.