PostgreSQL muss auf verschiedene Weisen angepasst werden.
Dies variert je nach eingesetzter Distribution, da distributionsabhängig unterschiedliche Strategien beim Upgrade der Postgres Version eingesetzt werden. Als Hinweis einige Links zu den drei Distribution (Stand Dezember 2018):
kivitendo setzt zwingend voraus, dass die Datenbank Unicode/UTF-8 als Encoding einsetzt. Bei aktuellen Serverinstallationen braucht man hier meist nicht einzugreifen.
Das Encoding des Datenbankservers kann überprüft werden. Ist das Encoding der Datenbank "template1" "Unicode" bzw. "UTF-8", so braucht man nichts weiteres diesbezüglich unternehmen. Zum Testen:
su postgres echo '\l' | psql exit
Andernfalls ist es notwendig, einen neuen Datenbankcluster mit Unicode-Encoding anzulegen und diesen zu verwenden. Unter Debian und Ubuntu kann dies z.B. für PostgreSQL 9.3 mit dem folgenden Befehl getan werden:
pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 9.3 clustername
Die Datenbankversionsnummer muss an die tatsächlich verwendete Versionsnummer angepasst werden.
Unter anderen Distributionen gibt es ähnliche Methoden.
Das Encoding einer Datenbank kann in psql mit
\l
geprüft werden.
In der Datei postgresql.conf
, die je nach
Distribution in verschiedenen Verzeichnissen liegen kann (z.B.
/var/lib/pgsql/data/
oder
/etc/postgresql/
), muss sichergestellt werden,
dass TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den
Parameter listen_address
gesteuert. Laufen
PostgreSQL und kivitendo auf demselben Rechner, so kann dort der Wert
localhost
verwendet werden. Andernfalls müssen
Datenbankverbindungen auch von anderen Rechnern aus zugelassen werden,
was mit dem Wert *
geschieht.
In der Datei pg_hba.conf
, die im gleichen
Verzeichnis wie die postgresql.conf
zu finden
sein sollte, müssen die Berechtigungen für den Zugriff geändert
werden. Hier gibt es mehrere Möglichkeiten. Sinnvoll ist es nur die
nötigen Verbindungen immer zuzulassen, für eine lokal laufende
Datenbank zum Beispiel:
local all kivitendo password host all kivitendo 127.0.0.1 255.255.255.255 password
In der Datenbank template1
muss die
Unterstützung für servergespeicherte Prozeduren eingerichet werden.
Melden Sie sich dafür als Benutzer “postgres” an der Datenbank an:
su - postgres psql template1
führen Sie die folgenden Kommandos aus:
CREATE EXTENSION IF NOT EXISTS plpgsql; \q
Anmerkung | |
---|---|
CREATE LANGUAGE 'plpgsql'; \q |
Ab Version 3.5.1 wird die Trigram-Index-Erweiterung benötigt. Diese wird mit dem SQL-Updatescript sql/Pg-upgrade2/trigram_extension.sql und Datenbank-Super-Benutzer Rechten automatisch installiert. Dazu braucht der DatenbankSuperbenutzer "postgres" ein Passwort.
su - postgres psql \password postgres Eingabe Passwort \q
Benutzername Postgres und Passwort können jetzt beim Anlegen einer Datenbank bzw. bei Updatescripten, die SuperuserRechte benötigen, eingegeben werden.
Anmerkung | |
---|---|
select * from pg_available_extensions where name ='pg_trgm'; in template1 sollte entsprechend erfolgreich sein. Andernfalls muss das Paket nachinstalliert werden, bspw. bei debian/ubuntu apt install postgresql-contrib
|
Wenn Sie nicht den Datenbanksuperuser “postgres” zum Zugriff benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen können:
Die Frage, ob der neue User Superuser sein soll, können Sie mit nein beantworten, genauso ist die Berechtigung neue User (Roles) zu generieren nicht nötig.
su - postgres createuser -d -P kivitendo exit
Wenn Sie später einen Datenbankzugriff konfigurieren, verändern Sie den evtl. voreingestellten Benutzer “postgres” auf “kivitendo” bzw. den hier gewählten Benutzernamen.