Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Instalacija pgSQL kroz .bat

[es] :: PostgreSQL :: Instalacija pgSQL kroz .bat

[ Pregleda: 3716 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SpizaGenije
Spiza Genije
Software Developer
Signus

Član broj: 247347
Poruke: 193
31.223.128.*



+4 Profil

icon Instalacija pgSQL kroz .bat18.06.2015. u 14:38 - pre 106 meseci
Pozdrav,

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

Code:

@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


Some people, when confronted with a problem, think: "I know, I'll use regular expressions."
Now they have two problems!
-Jamie Zawinsky
 
Odgovor na temu

abyss

Član broj: 2945
Poruke: 684
*.static.isp.telekom.rs.



+51 Profil

icon Re: Instalacija pgSQL kroz .bat19.06.2015. u 07:15 - pre 106 meseci
Koju gresku daje?
--
"Once hadst thou passions and calledst them evil. But now hast thou only
thy virtues: they grew out of thy passions."
 
Odgovor na temu

SpizaGenije
Spiza Genije
Software Developer
Signus

Član broj: 247347
Poruke: 193
31.223.128.*



+4 Profil

icon Re: Instalacija pgSQL kroz .bat19.06.2015. u 13:55 - pre 106 meseci
Vidim ga u Servisima i vidim da je servis zaustavljen.

Kada pokušam da pokrenem servis, izbaci mi dijalog sa sl. greškom:

Code:
The postgresSignus service on Local Computer is started and then stopped. Some services stop 
automatically if they have no work to do, for example, the Performance Logs and Alerts service.


A u logovima nemam ništa...
Some people, when confronted with a problem, think: "I know, I'll use regular expressions."
Now they have two problems!
-Jamie Zawinsky
 
Odgovor na temu

abyss

Član broj: 2945
Poruke: 684
*.static.isp.telekom.rs.



+51 Profil

icon Re: Instalacija pgSQL kroz .bat19.06.2015. u 14:34 - pre 106 meseci
Jel si gledao i service i postgre logove?
--
"Once hadst thou passions and calledst them evil. But now hast thou only
thy virtues: they grew out of thy passions."
 
Odgovor na temu

SpizaGenije
Spiza Genije
Software Developer
Signus

Član broj: 247347
Poruke: 193
*.telrad.net.



+4 Profil

icon Re: Instalacija pgSQL kroz .bat20.06.2015. u 15:49 - pre 106 meseci
Skont'o...

Nađoh negde objašnjenje kako to radi PG Setup, "slovo-po-slovo"...

Ako neko bude naleteo na isti problem, evo rešenje za XP, Win7, Win 8.1 (32 i 64bitne verzije)

C/P navedenog kôda smestiti u .bat file... Batch file treba da bude u root folderu u kome su smešteni pgSQL binariji...

Najbolje C/P dole navedeni kôd u Notepad++ da bi se lepo "ofarbao"... Ili, da ga Admin ofarba, pa da i nama običnim smrtnicima objasni kako se to radi! :)
Code:

@ECHO OFF
REM -->  Brza provera generacije OS; svi OS pre NT4 su ignorisani zbog pojednostavljene procedure... 
SET NewOSWith_UAC=YES
VER | FINDSTR /IL "5." > NUL
IF %ERRORLEVEL% == 0 SET NewOSWith_UAC=NO
VER | FINDSTR /IL "4." > NUL
IF %ERRORLEVEL% == 0 SET NewOSWith_UAC=NO


REM --> Provera da li imamo admin. privilegije... Ako nemamo, daje ih
CALL NET SESSION >nul 2>&1
IF NOT %ERRORLEVEL% == 0 (
    if /i "%NewOSWith_UAC%"=="YES" (
        rem Start batch again with UAC
        echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
        echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
        "%temp%\getadmin.vbs"
        del "%temp%\getadmin.vbs"
        exit /B
    )
REM -->  Kôd ispod sada okida sa administratorskim privilegijama
    goto :eof
)
SET pgPutanja=%~dp0 REM --> root folder (folder u kome se nalazi .bat file i root folder pgSQL binarija)
SET pgUser="root"   REM --> username (upisati po želji - default je "postgres")
SET pgServis="Signus PG Servis" REM --> naziv servisa (upisati po želji kako se zove servis)

REM --> ----------------------------------------------------------------------------------------------------
REM --> "Deinstalacija" pgSQL servera (služi prilikom višestrukih testova)
REM --> (otkomentarisati sledece tri linije kôda da bi se izvršila "deinstalacija")

REM --> sc stop %pgServis%        REM --> zaustavlja servis
REM --> sc delete %pgServis%    REM --> briše servis
REM --> rd /q/s %pgPutanja%data    REM --> briše <Data> folder
REM --> ----------------------------------------------------------------------------------------------------

REM --> Instalacija pgSQL 
%pgPutanja%bin\initdb -U %pgUser% -A trust -D .\data  --encoding=UTF8
REM --> -U <username> (definisanje korisnika - videti u SETovima pod "pgUser")
REM --> -A trust (ne traži pass), -P <neka_šifra> (automatski prilikom instalacije postavlja zadatu šifru), -W (u toku instalacije traži da korisnik ukuca šifru)
REM --> -D kako ce se zvati folder u kome ce smestiti fajlove (po def. to je <data> folder, vazda bio i ost'o)

REM --> Registrovanje servisa (servis se NE POKRECE)
%pgPutanja%bin\pg_ctl.exe register -N %pgServis% -D "%pgPutanja%data"

REM --> kopira novi "postgresql.conf" fajl iz root_foldera u "root_folder/bin" i radi overwrite postojeceg
REM --> u suštini, to je isti .conf fajl u kome su otkomentarisano sledece (po def. ostaje zakomentarisano pa se servis nece pokrenuti):
REM --> listen_addresses = '*'    # what IP address(es) to listen on;
REM -->                         # comma-separated list of addresses;
REM -->                         # defaults to 'localhost'; use '*' for all
REM -->                         # (change requires restart)
REM --> port = 5432                # (change requires restart)
REM --> max_connections = 100    # (change requires restart)
COPY %pgPutanja%postgresql.conf %pgPutanja%data

REM --> kopira novi "pg_hba.conf" fajl iz root_foldera u "root_folder/bin" i radi overwrite postojeceg
REM --> podešavanje sa kojih IP adresa možemo pristupiti severu, koji korisnici mogu pristupiti serveru, etc...
REM --> pogledati pgSQL dokumentaciju za pg_hba.conf fajl
COPY %pgPutanja%pg_hba.conf %pgPutanja%data

REM --> pokretanje servisa
net start %pgServis%

REM --> okidanje .sql skripte preko koje kreiram bazu, šemu, tabele, "trpanje" podataka u tabele, etc...
%pgPutanja%bin\psql -U %pgUser% -f %pgPutanja%scripts\createdb.sql postgres


REM --> ***********************************************************
REM --> testirano za pgSQL ver. 9.4. iako ne vidim razlog zašto ne bi radilo i na prethodnim verzijama...
REM --> na test mašini se vrti WIN XP sp. 3 (32 bit.)... 
REM --> imao sam problema sa admin privilegijama na WIN 7 (32 bit). Ako okinem .bat file na desni klik (Run as Admin), radi bez problema.
REM --> mašina sa WIN 8.1 (64 bit) je provrtila bez problema
REM --> ***********************************************************


[Ovu poruku je menjao SpizaGenije dana 20.06.2015. u 17:02 GMT+1]
Some people, when confronted with a problem, think: "I know, I'll use regular expressions."
Now they have two problems!
-Jamie Zawinsky
 
Odgovor na temu

zoranix
Software Architect
IS MicroCore
Knjaževac

Član broj: 243111
Poruke: 162
*.static.isp.telekom.rs.

Sajt: www.micro.co.rs


+36 Profil

icon Re: Instalacija pgSQL kroz .bat20.06.2015. u 20:56 - pre 106 meseci
Pa jel` proradio, ili ne?
 
Odgovor na temu

SpizaGenije
Spiza Genije
Software Developer
Signus

Član broj: 247347
Poruke: 193
*.telrad.net.



+4 Profil

icon Re: Instalacija pgSQL kroz .bat22.06.2015. u 13:10 - pre 106 meseci
Citat:
zoranix: Pa jel` proradio, ili ne?

Rekoh u prošloj poruci...
Citat:
Nađoh negde objašnjenje kako to radi PG Setup, "slovo-po-slovo"...
Ako neko bude naleteo na isti problem, evo rešenje za XP, Win7, Win 8.1 (32 i 64bitne verzije)

Znači, proradio je...
Još samo da skontam rešenje u kome ne moram da okidam .bat file na "Run as Admin" na Win 7... Okačim i to kada dođem do rešenja...
Uglavnom, instalira pgSQL, kreira servis, pokrene servis, kreira bazu, tabele u bazi, importuje podatke...Daje mi pristup sa udaljenog klijent računara. Naravno, moraju se postgresql.conf i pg_hba.conf fajlovi pravilno konfigurisati. Okačiću i te fajlove ako je neko zainteresovan, ali kontam da su ta podešavanja manje - više subjektivna, a s obzirom da je ovakav vid instalacije potreban naprednim korisnicima, kontam da je lakše da konfigurišu po svom nahođenju (onako kako njima odgovara).

[Ovu poruku je menjao SpizaGenije dana 22.06.2015. u 14:22 GMT+1]
Some people, when confronted with a problem, think: "I know, I'll use regular expressions."
Now they have two problems!
-Jamie Zawinsky
 
Odgovor na temu

[es] :: PostgreSQL :: Instalacija pgSQL kroz .bat

[ Pregleda: 3716 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.