Tudo que você precisa fazer é criar um diretório de dados:
initdb -D %PROGRAMDATA%\MyApp\data
em seguida, instale o arquivo de configuração do PostgreSQL e
pg_hba.conf
ou faça as edições necessárias nos arquivos gerados automaticamente pelo initdb
em %PROGRAMDATA%\MyApp\data\postgresql.conf
e %PROGRAMDATA%\MyApp\data\pg_hba.conf
. Então:
pg_ctl register -D %PROGRAMDATA%\MyApp\data -S auto -N postgres-MyApp -U NETWORKSERVICE
net start postgres-MyApp
Por favor não use a porta padrão 5432. Execute em uma porta não padrão que não entrará em conflito com nenhuma instalação existente ou futura do PostgreSQL. Além disso, não use os nomes de serviço "padrão" como
postgresql-9.2
. (O NSIS pode oferecer um comando para iniciar um serviço, em vez de usar
net start
. Se isso acontecer, use o comando NSIS apropriado). Observe que
%PROGRAMDATA%
é definido apenas para Windows Vista e superior (onde aponta para %SYSTEMDRIVE%\ProgramData
por padrão). Você pode usar %ALLUSERSPROFILE%
no Windows XP, mas realmente, quem se importa com o XP agora? Pessoalmente, sugiro usar instaladores MSI com WiX.