Postgres SQL Portable gesucht

Hallo,

brauche ein auf USB-Stick lauffähiges PostgresSQL und kam durch googlen auf folgenden Link: http://greg.webhop.net/postgresql_portable/
Leider scheint da kein Download mehr möglich. Kennt jemand einen anderen Link oder kann mir sonst irgendwie weiterhelfen?

Dafür brauchst Du keine spezielle Software sofern Dein USB Stick mit einem Dateisystem formatiert ist welches PG benutzen kann. Unter Windows bedeutet das, dass der Stick mit NTFS formatiert sein muss.

Ich mache das ganze (unter Windows) folgendermassen:

Ich lade mir die ZIP Distribution runter (EnterpriseDB: Download PostgreSQL Binaries)
Das ganze in ein Verzeichnis auspacken (wirklich benötigt werden nur die Unterverzeichnisse bin, lib und share)

In dem Verzeichnis kann man dann initdb manuell aufrufen und mit einer kleinen Batchdatei den Server mittels pg_ctl starten.

Die Batchdateien sind recht einfach:

initialize.cmd

set pgdir=%~dp0

set datadir=%pgdir%datadir
set bindir=%pgdir%server\bin
set pwfile=%pgdir%password_for_postgres_db_user.txt

echo Initializing data directory...
set lc_messages=English
echo postgres> %pwfile%

"%bindir%\initdb" -D "%datadir%" --lc-messages=English -U postgres --pwfile="%pwfile%" -E UTF8 -A md5 > initialize.log

Damit wird dann gleich der Benutzer “postgres” mit dem Passwort “secret” angelegt.


start_pg.cmd:

@echo off

setlocal

set pgdir=%~dp0

set datadir=%pgdir%datadir
set bindir=%pgdir%server\bin
set lc_messages=English

"%bindir%\pg_ctl.exe"  -D "%datadir%" start

stop_pg.cmd

@echo off

setlocal

set pgdir=%~dp0

set datadir=%pgdir%datadir
set bindir=%pgdir%server\bin
set lc_messages=English

"%bindir%\pg_ctl.exe" -w -D "%datadir%" stop

Um das Ganze noch einfacher zu machen habe ich auch noch ein psql.cmd Datei die die entsprechenden Umgebungsvariablen setzt um psql direkt (ohne Eingabe von Benutzer/Passwort) starten zu können.

psql.cmd:

@echo off
setlocal 

set PGHOST=localhost
set PGPORT=5432
set PGDATABASE=postgres
set PGUSER=postgres
set PGPASSWORD=secret
set LC_MESSAGES=English

chcp 1252 > nul 2>&1
"%~dp0\pg\server\bin\psql "

endlocal

Wenn Du das Ganze nicht unter Windows laufen lassen willst, musst Du halt aus den Batch-Dateien Shell-Skripte machen. Ich denke nicht, dass das schwierig ist.

Ist es irgendwie möglich die contrib functionen in die portable installation einzubinden?

Ist es irgendwie möglich die contrib functionen in die portable installation einzubinden?

Das sollte eigentlich möglich sein.

Nach dem initdb muss halt die entsprechenden Funktionen/Module registrieren werden (über das mitgelieferte SQL Script). Das muss ja auch nur einmal gemacht werden.

Dann musst Du natürlich auch dafür sorgen, dass die dafür benötigten DLL/Libraries verfügbar sind.
Ich habe das nicht probiert, aber wenn die im lib Verzeichnis liegen, dann müsste das eigentlich reichen.

Hi castorp,
Mein 1. Beitrag in diesem Forum - bin seit gestern auch “Postgres’er”.
Danke für Deinen Hinweis auf die “Portable Version”.
In Deinen Batchdateien stecken allerdings ein paar kleine Fehler. Da Dein Beitrag noch nicht sehr alt ist, lohnen sich diese Hinweise, denke ich.

datadir
muss angelegt bzw. angepasst werden

set bindir=%pgdir%server\bin
den Pfad gibt es nicht - soll sicher heissen:
set bindir=%pgdir%bin

Du initialisierst mit dem Password “postgres”, als Password nimmste aber später “secret”

Und diese Zeile war mir auch ein Rätsel:
"%~dp0\pg\server\bin\psql "
Meinst Du:
“%~dp0bin\psql.exe”
Sicher, oder?

Bitte nicht als meckern auffassen - alles bezieht sich auf den von Dir angegebenen DL, entpackt und im Verzeichnis “pgsql” angelegte Bachtdateien … :wink:

Grüsse

Meine eigentlichen Dateien sind ein ganzes Stück umfangreicher. Ich hatte versucht das im Posting auf das nötigste zu beschränken, kann leicht sein, dass mir dabei ein paar Fehler unterlaufen sind :rolleyes:


set bindir=%pgdir%server\bin
den Pfad gibt es nicht - soll sicher heissen:
set bindir=%pgdir%bin

Doch, den Pfad gibt es bei mir, weil ich das Archiv immer in das Unterverzeichnis “server” entpacke.


Und diese Zeile war mir auch ein Rätsel:
"%~dp0\pg\server\bin\psql "
Meinst Du:
“%~dp0bin\psql.exe”
Sicher, oder?

Eigentlich meinte ich %~dp0server\bin\psql


Bitte nicht als meckern auffassen

Kein Problem, hilft sicherlich anderen die das hier auch verwenden
Wie gesagt: meine Batchdateien sehen sowieso anders aus

Aber es freut mich wenn es Dir geholfen hat (trotz der Copy & Paste Fehler) :slight_smile: