Allt du behöver göra är att skapa en datakatalog:
initdb -D %PROGRAMDATA%\MyApp\data
installera sedan din PostgreSQL-konfigurationsfil och pg_hba.conf
eller gör nödvändiga ändringar i filerna som genereras automatiskt av initdb
på %PROGRAMDATA%\MyApp\data\postgresql.conf
och %PROGRAMDATA%\MyApp\data\pg_hba.conf
.
Sedan:
pg_ctl register -D %PROGRAMDATA%\MyApp\data -S auto -N postgres-MyApp -U NETWORKSERVICE
net start postgres-MyApp
Snälla använd inte standardporten 5432. Kör på en icke-standardport som inte kommer i konflikt med någon befintlig eller framtida PostgreSQL-installation. Använd inte heller "standard" tjänstnamn som postgresql-9.2
.
(NSIS kan erbjuda ett kommando för att starta en tjänst, istället för att använda net start
. Om det gör det, använd lämpligt NSIS-kommando).
Observera att %PROGRAMDATA%
är endast definierad för Windows Vista och högre (där den pekar på %SYSTEMDRIVE%\ProgramData
som standard). Du kan använda %ALLUSERSPROFILE%
på Windows XP, men vem bryr sig egentligen om XP nu?
Personligen föreslår jag att du använder MSI-installationsprogram med WiX.