Wszystko, co musisz zrobić, to utworzyć katalog danych:
initdb -D %PROGRAMDATA%\MyApp\data
następnie zainstaluj plik konfiguracyjny PostgreSQL i pg_hba.conf
lub dokonaj wymaganych zmian w plikach generowanych automatycznie przez initdb
w %PROGRAMDATA%\MyApp\data\postgresql.conf
i %PROGRAMDATA%\MyApp\data\pg_hba.conf
.
Następnie:
pg_ctl register -D %PROGRAMDATA%\MyApp\data -S auto -N postgres-MyApp -U NETWORKSERVICE
net start postgres-MyApp
Proszę nie używaj domyślnego portu 5432. Uruchom na porcie innym niż domyślny, który nie spowoduje konfliktu z żadną istniejącą ani przyszłą instalacją PostgreSQL. Nie używaj również „standardowych” nazw usług, takich jak postgresql-9.2
.
(NSIS może oferować polecenie uruchomienia usługi, zamiast używania net start
. Jeśli tak, użyj odpowiedniego polecenia NSIS).
Zauważ, że %PROGRAMDATA%
jest zdefiniowany tylko dla systemu Windows Vista i nowszych (gdzie wskazuje na %SYSTEMDRIVE%\ProgramData
domyślnie). Możesz użyć %ALLUSERSPROFILE%
w systemie Windows XP, ale tak naprawdę kogo teraz obchodzi XP?
Osobiście sugeruję używanie instalatorów MSI z WiX.