naime, kao neko ko je godinama radio na Oracle, MySQL i MSSQL platformama, znao sam da ću se (u jednom trenutku) morati ozbiljno pozabaviti i pgSQLom... Sa PG sam se sudario pre par godina, ali ništa ozbiljnije nisam radio.
Elem, koji je moj problem... Tim, u kojem sam i ja, je razvio nekoliko aplikacija u C#.
Kako su te aplikacije prvenstveno namenjene našim klijentima, one će se prodavati za neki smešan iznos (50KM/25€ trajna licenca).
E sada... s obzirom da je aplikacija mnogo jeftina, ne isplati nam se da guramo MS SQL, Oracle, ili MySQL, pa smo odlučili da se "kače" na PGSQL.
Kako bismo našim korisnicima omogućili što jednostavniju instalaciju navedene app., moja zamisao je da kroz setup okinem i neki .bat file, koji će mi prekopirati PG 9.4.4. binarije, dići server, pokrenuti servise, kreirati bazu i tabele, etc, etc...
E, tu mi nastaje muka... Nigde na netu ne mogu da iskopam kako da načukam tih par linija kôda u batch fajlu, koje će mi odraditi gorenavedeno...
Ako se neko susretao sa ovim problemom, drago bi mi bilo da okači neki primer, ili gotovo rešenje...
PS. Na WIN 7 32 bit mi odradi posao, dok na WIN XP 32 bit vidim servis i kada ga startujem, okine mi neku grešku... :P
@echo off
SET postgresql_root=C:\Signus\Pn\PostgreSQL\9.4
SET pguser=postgres
SET pgport=5432
SET pgpass=signus
SET pgservices=postgresSignus
:: BatchGotAdmin
:-------------------------------------
REM --> Provera permisija
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> Ukoliko je greška, nemamo admin. privilegije
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
REM --> Pristupam kao admin.
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
:--------------------------------------
%postgresql_root%\bin\initdb -U %pguser% -A trust -E utf8 -D %postgresql_root%\data
COPY %postgresql_root%\postgresql.conf %postgresql_root%\data
%postgresql_root%\bin\psql -U %pguser% -f %postgresql_root%\scripts\createdb.sql postgres
Now they have two problems!
-Jamie Zawinsky