Tutto quello che devi fare è creare una directory di dati:
initdb -D %PROGRAMDATA%\MyApp\data
quindi installa il tuo file di configurazione PostgreSQL e pg_hba.conf
oppure apportare le modifiche richieste ai file generati automaticamente da initdb
in %PROGRAMDATA%\MyApp\data\postgresql.conf
e %PROGRAMDATA%\MyApp\data\pg_hba.conf
.
Quindi:
pg_ctl register -D %PROGRAMDATA%\MyApp\data -S auto -N postgres-MyApp -U NETWORKSERVICE
net start postgres-MyApp
Per favore non utilizzare la porta predefinita 5432. Eseguire su una porta non predefinita che non entrerà in conflitto con alcuna installazione PostgreSQL esistente o futura. Inoltre, non utilizzare i nomi di servizio "standard" come postgresql-9.2
.
(NSIS potrebbe offrire un comando per avviare un servizio, invece di utilizzare net start
. In tal caso, utilizzare il comando NSIS appropriato).
Nota che %PROGRAMDATA%
è definito solo per Windows Vista e versioni successive (dove punta a %SYSTEMDRIVE%\ProgramData
per impostazione predefinita). Puoi usare %ALLUSERSPROFILE%
su Windows XP, ma davvero, chi se ne frega di XP adesso?
Personalmente, suggerisco di utilizzare i programmi di installazione MSI con WiX.