INSTALAR PORTGRESQL COM INNO SETUP

LEOGREEN 10/01/2015 15:39:23
#443702
Boa tarde !

Tenho um script para instalar PostgreSql com inno setup.
Até o momento o script está conseguindo: Instalar o software , Instalar o Postgresql , definir a senha do banco de dados.
Mas não consigo fazer o restore da base de dados. Desta forma quando o software inicia (Load) não conecta com a tabela necessaria ,já que está não existe.


Script do Inno :


  ; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

.[code]
// check for framework
Function CheckForFramework : boolean;
Var
regresult : cardinal;
Begin
RegQueryDWordValue(HKLM, [ô]Software\Microsoft\.NETFramework\policy\v4.5[ô], [ô]Install[ô], regresult);
If regresult = 0 Then
Begin
Result := true;
End
Else
Result := false;
End;

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{CF8D6FF8-5E59-42F5-ABE0-C774EFC7773E}
AppName=Teste
AppVersion=1.0
;AppVerName= Teste
AppPublisher=nome da empresa
AppPublisherURL=http://www.
AppSupportURL=http://www.
AppUpdatesURL=http://www.
DefaultDirName={pf32}\Software\Teste
DisableDirPage=yes
DefaultGroupName=Teste
DisableProgramGroupPage=yes
LicenseFile=E:\Software\Teste\Licença.txt
OutputDir=E:\
OutputBaseFilename=Teste Setup
Compression=lzma
SolidCompression=yes
WindowVisible =false
WizardImageFile=E:\Software\Teste\cc.bmp
[Languages]
Name: [Ô]brazilianportuguese[Ô]; MessagesFile: [Ô]compiler:Languages\BrazilianPortuguese.isl[Ô]
[Tasks]
Name: [Ô]desktopicon[Ô]; Description: [Ô]{cm:CreateDesktopIcon}[Ô]; GroupDescription: [Ô]{cm:AdditionalIcons}[Ô]; Flags: unchecked
Name: [Ô]quicklaunchicon[Ô]; Description: [Ô]{cm:CreateQuickLaunchIcon}[Ô]; GroupDescription: [Ô]{cm:AdditionalIcons}[Ô]; Flags: unchecked; OnlyBelowVersion: 0,6.1
[Files]

Source: E:\Software\Teste\dotNetFx45_Full_setup.exe; DestDir: {tmp}; Flags: deleteafterinstall; Check: CheckForFramework
Source: [Ô]E:\Software\Teste\Teste.exe[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\ClData.dll[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\DComPostg.dll[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\Teste.exe.config[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\Teste.vshost.exe[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\Teste.vshost.exe.config[Ô]; DestDir: [Ô]{pf32}Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\Teste.vshost.exe.manifest[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\Licença.txt[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\Mono.Security.dll[Ô]; DestDir: [Ô]{pf32}Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\Npgsql.dll[Ô];DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\PushDtLink.dll[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\Validate.dll[Ô];DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\cc.bmp[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion

Source: [Ô]E:\Software\Teste\postgresql-9.4.0-1-windows.exe[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\createdatabase.bat[Ô]; DestDir: [Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion
Source: [Ô]E:\Software\Teste\Teste.backup[Ô]; DestDir:[Ô]{pf32}\Software\Teste[Ô]; Flags: ignoreversion

[Icons]
Name: [Ô]{group}\Teste[Ô]; Filename: [Ô]{app}\Teste.exe[Ô]
Name: [Ô]{group}\{cm:ProgramOnTheWeb,Teste}[Ô]; Filename: [Ô]http://www.[Ô]
Name: [Ô]{commondesktop}\Teste[Ô]; Filename: [Ô]{app}\Teste.exe[Ô]; Tasks: desktopicon
Name: [Ô]{userappdata}\Microsoft\Internet Explorer\Quick Launch\Teste[Ô]; Filename: [Ô]{app}\Teste.exe[Ô]; Tasks: quicklaunchicon
[Run]
Filename: {tmp}\dotNetFx45_Full_setup; Parameters: [Ô]/q:a /c:[Ô][Ô]\Program Files (x86)\Software\Teste[Ô][Ô]install /l /q[Ô][Ô][Ô]; Check: CheckForFramework; StatusMsg: Microsoft Framework 4.5 está começando a ser instalado. Por favor aguarde...
Filename: [Ô]{app}\Teste.exe[Ô]; Description: [Ô]{cm:LaunchProgram,Teste}[Ô]; Flags: nowait postinstall skipifsilent

Filename: [Ô]C:\Program Files (x86)\Software\Teste\postgresql-9.4.0-1-windows.exe[Ô]; Parameters: --serverport 5432 --locale C --superaccount postgres --superpassword 123456 --unattendedmodeui minimal --debuglevel 2 --mode unattended; StatusMsg: Aguarde até que a instalação chegue ao fim....
Filename: [Ô][Ô]C:\Program Files (x86)\Software\Teste\createdatabase.bat[Ô]; Parameters: [Ô][Ô][Ô]{pf32}[Ô][Ô] [Ô][Ô]{pf32}[Ô][Ô][Ô]; StatusMsg: Atualizando o banco de dados; Languages:

[UninstallDelete]
;DESINSTALAÇÃO
;deletar ao desinstalar - arquivos e/ou diretórios
Name: {app}; Type: filesandordirs



Abaixo meu arquivo .Bat que cria o banco de dados .. Obs: No windows 7 Esse arquivo consegue criar o banco de dados, Mas no windows 8 estou tendo problemas.


  @Echo off  

set PGUSER=postgres
set PGPASSWORD=123456

set caminho=%~f1
set caminho_backup=%~f2

c:
cd \
cd C:\Program Files (x86)\PostgreSQL\9.4\bin

@echo [Ô]Aguarde enquanto o banco de dados é atualizado...[Ô]

psql -U postgres -c [Ô]create database Teste[Ô]

pg_restore.exe -i -h localhost -p 5432 -U postgres -d Teste -f [Ô]C:\Program Files (x86)\Software\Teste.backup[Ô]

pause




O erro que recebo é o da imagem em anexo

Já tentei alterar para : psql.exe -U postgres -c [Ô]create database Teste[Ô]

start psql.exe -U postgres -c [Ô]create database Teste[Ô]


Consigo instalar meu software e o banco de dados , mas acredido que tem algum erro relacionado aos diretórios por ser windows 64bits

Alguem poderá resolver isto? conto com toda ajuda ,obrigado!
NICKOSOFT 11/01/2015 10:34:01
#443709
to apanhando e muito pra instalar o crruntime, da erro e diz nao ser aplicativo valido 32bits, e ja conferi varias vezes, to colocando o x86, tem complementos q precisamos q dao uma dor de cabeca, veja esses 2 links podem ajudar

https://gist.github.com/levymoreira/2370405
http://www.guj.com.br/java/276527-resolvido-inno-setup-e-postgres-91
LEOGREEN 11/01/2015 20:39:27
#443714
Resolvido ..ficou assim:


@Echo off
c:
cd \
cd C:\Program Files\PostgreSQL\9.4\bin

@echo [Ô]Aguarde enquanto o banco de dados é atualizado...[Ô]

set PGPASSWORD=123456
psql.exe -U postgres -c [Ô]create database Teste[Ô]
pg_restore.exe -h localhost -U postgres -d Teste [Ô]C:\Program Files (x86)\Software\Teste.backup[Ô]
endlocal



o problema era que -f é arquivo de saída e não de entrada (Restore)
Removendo o Pause , o setup encerra sozinho já executando o software com os dados do restore ....
Tópico encerrado , respostas não são mais permitidas