Il vous suffit de créer un répertoire de données :
initdb -D %PROGRAMDATA%\MyApp\data
puis installez votre fichier de configuration PostgreSQL et pg_hba.conf
ou apporter les modifications nécessaires aux fichiers générés automatiquement par initdb
à %PROGRAMDATA%\MyApp\data\postgresql.conf
et %PROGRAMDATA%\MyApp\data\pg_hba.conf
.
Ensuite :
pg_ctl register -D %PROGRAMDATA%\MyApp\data -S auto -N postgres-MyApp -U NETWORKSERVICE
net start postgres-MyApp
S'il vous plaît n'utilisez pas le port par défaut 5432. Exécutez sur un port autre que le port par défaut qui n'entrera pas en conflit avec une installation PostgreSQL existante ou future. N'utilisez pas non plus les noms de service "standard" comme postgresql-9.2
.
(NSIS peut proposer une commande pour démarrer un service, au lieu d'utiliser net start
. Si c'est le cas, utilisez la commande NSIS appropriée).
Notez que %PROGRAMDATA%
n'est défini que pour Windows Vista et supérieur (où il pointe vers %SYSTEMDRIVE%\ProgramData
par défaut). Vous pouvez utiliser %ALLUSERSPROFILE%
sur Windows XP, mais vraiment, qui se soucie de XP maintenant ?
Personnellement, je suggère d'utiliser les programmes d'installation MSI avec WiX.