Todo lo que necesita hacer es crear un directorio de datos:
initdb -D %PROGRAMDATA%\MyApp\data
luego instale su archivo de configuración de PostgreSQL y pg_hba.conf
o realice las modificaciones necesarias en los archivos generados automáticamente por initdb
en %PROGRAMDATA%\MyApp\data\postgresql.conf
y %PROGRAMDATA%\MyApp\data\pg_hba.conf
.
Entonces:
pg_ctl register -D %PROGRAMDATA%\MyApp\data -S auto -N postgres-MyApp -U NETWORKSERVICE
net start postgres-MyApp
Por favor no use el puerto predeterminado 5432. Ejecute en un puerto no predeterminado que no entre en conflicto con ninguna instalación de PostgreSQL existente o futura. Además, no utilice los nombres de servicio "estándar" como postgresql-9.2
.
(NSIS puede ofrecer un comando para iniciar un servicio, en lugar de usar net start
. Si es así, use el comando NSIS apropiado).
Tenga en cuenta que %PROGRAMDATA%
solo está definido para Windows Vista y superior (donde apunta a %SYSTEMDRIVE%\ProgramData
por defecto). Puede usar %ALLUSERSPROFILE%
en Windows XP, pero realmente, ¿a quién le importa XP ahora?
Personalmente, sugiero usar instaladores MSI con WiX.