Datenbank-Skripte

Das VCDB v5 Softwarepaket enthält Shell- und SQL-Skripte für Aufgaben wie das Aufsetzen oder Löschen einer VCDB-Instanz, das Erstellen zusätzlicher Datenbank-Schemas sowie das Gewähren oder Entziehung von Zugriffsrechten.

Die Datenbank-Skripte sind sowohl im VCDB Softwarepaket als auch im vcdb-tool enthalten.

Shell-Skripte

Die Shell-Skripte befinden sich im Verzeichnis vcdb/postgresql/shell-scripts des VCDB-Softwarepakets oder im gleichnamigen Verzeichnis innerhalb des Installationsverzeichnisses von vcdb-tool. Sie stehen in zwei Varianten in den folgenden Unterordnern zur Verfügung:

  1. unix für die Verwendung auf UNIX/Linux/macOS-Systemen; und

  2. windows für die Verwendung auf Windows-Systemen.

Die folgende Tabelle gibt einen Überblick über die verfügbaren Shell-Skripte und deren Einsatzzweck.

Skript [.sh|.bat] Beschreibung

connection-details

Speichert die Verbindungsparameter für eine VCDB-Instanz, die von allen anderen Skripten verwendet werden

create-db

Erstellt eine neue VCDB-Instanz (relationales Schema einschließlich aller Datenbankfunktionen)

create-schema

Erstellt ein zusätzliches Datenschema (analog zum Standardschema citydb) mit benutzerdefiniertem Namen

drop-db

Löscht eine bestehende VCDB-Instanz (inkl. aller Bestandteile des relationalen Schemas)

drop-schema

Entfernt ein Datenschema, das mit create-schema erstellt wurde

grant-access

Gewährt nur Lese- oder Lese- und Schreibzugriff auf eine VCDB-Instanz

revoke-access

Entzieht Lese- oder Schreibrechte auf eine VCDB-Instanz, die mit grant-access gewährt wurden

create-changelog

Installiert die Changelog-Erweiterung für eine VCDB-Instanz

drop-changelog

Entfernt die Changelog-Erweiterung von einer VCDB-Instanz

upgrade-db

Eine bestehende VCDB-Instanz auf eine neuere Minor- oder Patch-Version aktualisieren

Die Skripte sind für die Ausführung in einer interaktiven Shell-Sitzung konzipiert und fordern den Benutzer zur Eingabe der erforderlichen Informationen zur Durchführung der entsprechenden Aktion auf. Das connection-details Skript nimmt dabei eine besondere Rolle ein, da es die Verbindungsparameter zur VCDB v5 Instanz definiert. Diese Angaben werden von allen anderen Skripten übernommen. Passen Sie dieses Skript daher vor der Ausführung eines der anderen Skripte zunächst an Ihre Umgebung an – insbesondere der Pfad zur psql Ausführungsdatei muss korrekt gesetzt sein.

Öffnen Sie das connection-details Skript mit einem Texteditor Ihrer Wahl und geben Sie die notwendigen Informationen ein, wie im folgenden Beispiel dargestellt.

  • Linux

  • Windows CMD

#!/bin/bash
# Provide your database details here ----------------
export PGBIN=/var/lib/postgresql/[version]/bin
export PGHOST=localhost
export PGPORT=5432
export CITYDB=citydb_v5
export PGUSER=citydb_user
#----------------------------------------------------
# Provide your database details here ----------------
set PGBIN=C:\Program Files\PostgreSQL\[version]\bin
set PGHOST=localhost
set PGPORT=5432
set CITYDB=citydb_v5
set PGUSER=citydb_user
#----------------------------------------------------
Wenn der Pfad zur psql Ausführungsdatei bereits in der PATH Umgebungsvariable enthalten ist, kann die Zeile zum Setzen der PGBIN-Variable auch auskommentiert oder gelöscht werden.

Nach Anpassung des connection-details Skripts können alle anderen Skripte entweder durch Doppelklick oder innerhalb einer Shell-Sitzung gestartet werden. Unter UNIX/Linux müssen möglicherweise zunächst die entsprechenden Dateiberechtigungen gesetzt werden, um das Skript ausführbar zu machen.

Das unten stehende Beispiel zeigt, wie das create-db Skript ausgeführt wird, um eine neue VCDB v5 Instanz aufzusetzen.

  • Linux

  • Windows CMD

chmod u+x create-db.sh
./create-db.sh
create-db.bat

Es ist auch möglich, eine andere connection-details Datei aus einem anderen Ordner zu verwenden:

  • Linux

  • Windows CMD

./create-db.sh /path/to/connection-details.sh
create-db.bat C:\path\to\connection-details.bat

SQL-Skripte

Technisch gesehen sind die oben beschriebenen Shell-Skripte lediglich Wrapper, die Benutzereingaben auf komfortable Weise erfassen. Die eigentlichen Aktionen auf Datenbankebene werden durch SQL-Skripte durchgeführt, die von den Shell-Skripten aufgerufen werden.

Die SQL-Skripte befinden sich im vcdb/postgresql/sql-scripts Verzeichnis des VCDB-Softwarepakets oder im gleichnamigen Verzeichnis innerhalb des Installationsverzeichnisses von vcdb-tool. Wie bei den Shell-Skripten gibt es auch hier Unterordner für unix oder windows, je nach Betriebssystem. Die SQL-Skripte sind für die Ausführung mit psql konzipiert.

Die meisten SQL-Skripte benötigen Eingabeparameter, um die jeweilige Datenbankaktion auszuführen. Diese Parameter werden als Kommandozeilen-Parameter an psql übergeben. Das untenstehende Beispiel zeigt, wie das create-db.sql Skript über psql aufgerufen wird, um eine VCDB v5 Instanz aufzusetzen. Die erforderlichen Eingabeparameter für dieses Skript werden im Kapitel zum Aufsetzen einer Datenbank erläutert. Weitere Informationen zur Nutzung von psql und den verfügbaren Kommandozeilen-Parametern finden Sie in der offiziellen Dokumentation von psql.

  • Linux

  • Windows CMD

psql -d "citydb_v5" \
    -h localhost \
    -U "citydb_user" \
    -f "/path/to/the/reate-db.sql" \
    -v srid="25833" \
    -v srs_name="urn:ogc:def:crs:EPSG::25833" \
    -v changelog="no"
psql -d "citydb_v5" ^
    -h localhost ^
    -U "citydb_user" ^
    -f "C:\path\to\the\create-db.sql" ^
    -v srid="25833" ^
    -v srs_name="urn:ogc:def:crs:EPSG::25833" ^
    -v changelog="no"
Anstelle Eingangswerte direkt an den psql Befehl zu übergeben, wie oben dargestellt, empfiehlt es sich, Shell- oder Umgebungsvariablen zu verwenden. So lassen sich die SQL-Skripte flexibler in verschiedenen Umgebungen und Systemen wiederverwenden. Dies vereinfacht etwa die Nutzung der SQL-Skripte in automatischen Prozessen, ihre Integration in andere Software oder ihre Ausführung als Teil einer CI/CD-Pipeline. Insgesamt lassen sich so Workflows optimieren, die die SQL-Skripte nutzen.