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
template1opostgresdatabase 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
psqlcomando sulla shell per leggere unsqlscript 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.