Datenbank erstellen
Der database create
Befehl erstellt eine neue VCDB v5
Instanz in der Zieldatenbank.
Optionen
Der database create
Befehl erbt globale Optionen vom Hauptbefehl vcdb
sowie
Skriptoptionen von seinem übergeordneten database
Befehl. Zusätzlich stellt
er Optionen zum Aufsetzen und Konfigurieren einer VCDB-Instanz bereit.
Globale Optionen
Option | Beschreibung | Standardwert |
---|---|---|
|
Eine oder mehrere Argumentdateien mit Optionen. |
|
|
Hilfenachricht anzeigen und beenden. |
|
|
Versionsinformationen ausgeben und beenden. |
|
|
Konfiguration aus dieser Datei laden. |
|
|
Log-Level: |
|
|
Log-Nachrichten in diese Datei schreiben. |
|
|
Deaktiviert Log-Nachrichten auf der Konsole. |
|
|
Datei mit der Prozess-ID erstellen. |
|
|
Plugins aus diesem Verzeichnis laden. |
|
|
Plugins mit passendem vollqualifiziertem Klassennamen aktivieren oder deaktivieren. |
|
Weitere Informationen zu den globalen Optionen und Nutzungshinweise siehe hier.
Skriptoptionen
Option | Beschreibung | Standardwert |
---|---|---|
|
Pfad zur ausführbaren Datei des Datenbank-Clients. |
Client wird im |
|
Zeit in Sekunden, die auf den Abschluss der Operation gewartet wird. |
60 |
Weitere Informationen zu den Skriptoptionen und Nutzungshinweise siehe hier.
Optionen zum Aufsetzen der Datenbank
Option | Beschreibung | Standardwert |
---|---|---|
|
SRID für die VCDB-Instanz. |
|
|
Name des CRS für die VCDB-Instanz. |
urn:ogc:def:crs:EPSG:: |
|
Changelog-Erweiterung für die VCDB-Instanz aktivieren. |
|
|
Zuerst eine vorhandene VCDB-Instanz löschen. |
|
|
Details zur VCDB-Instanz in eine JSON-Datei schreiben. Mit |
Datenbank-Verbindungsoptionen
Option | Beschreibung | Standardwert |
---|---|---|
|
Hostname des Datenbankservers, auf dem die VCDB erstellt wird. |
|
|
Port des VCDB Datenbankservers. |
5432 |
|
Name der Datenbank, in der die VCDB-Instanz erstellt werden soll. Wird bei Bedarf mit dem Admin-Benutzer erstellt (sofern vom DBMS unterstützt). |
|
|
Benutzername des VCDB Besitzers. Wird bei Bedarf mit dem Admin-Benutzer erstellt. |
|
|
Passwort des VCDB Besitzers. Leer lassen, um zur Eingabe aufgefordert zu werden. |
|
|
Datenbankspezifische Verbindungsparameter. |
|
|
Benutzername mit ausreichenden Rechten zur Verwaltung von Datenbanken, Benutzern und Erweiterungen. |
|
|
Passwort des Admin-Benutzers. Leer lassen, um zur Eingabe aufgefordert zu werden. |
|
|
Datenbank, mit der sich der Admin-Benutzer verbinden soll. |
|
Weitere Informationen zu den Datenbank-Verbindungsoptionen und Nutzungshinweise siehe hier.
Im Gegensatz zu anderen Befehlen steht die Option --db-schema für den database create Befehl nicht zur
Verfügung.
|
Verwendung
Zieldatenbank und Besitzer der VCDB-Instanz
Um eine neue VCDB-Instanz mit dem create
Befehl zu erstellen, müssen die Verbindungsparameter zur Zieldatenbank
angegeben werden. Wie hier beschrieben, können die Verbindungsparameter über die oben
beschriebenen Kommandozeilenoptionen oder alternativ durch eine JSON-Konfigurationsdatei oder Umgebungsvariablen
definiert werden.
Die Zieldatenbank und der Besitzer der neuen VCDB-Instanz werden über die folgenden obligatorischen Optionen definiert:
-
--db-name
: Die Zieldatenbank, in welcher die VCDB-Instanz erstellt wird. -
--db-username
: Der Benutzer, der Besitzer der VCDB-Instanz werden soll.
Standardmäßig wird davon ausgegangen, dass sowohl die Zieldatenbank als auch der Besitzer bereits angelegt wurden und existieren. Falls nur eine der beiden Voraussetzungen nicht erfüllt ist, oder entweder die Zieldatenbank oder der Benutzer falsch konfiguriert ist — beispielsweise aufgrund fehlender Datenbankerweiterungen oder unzureichender Berechtigungen — bricht der Befehl mit einem Fehler ab.
Wenn die Zieldatenbank bereits eine bestehende VCDB-Instanz enthält, kann mit der Option --drop-existing
zunächst die
bestehende Instanz entfernt werden, bevor die neue Instanz erstellt wird. Dazu muss der über
--db-username
angegebene Benutzer über ausreichende Berechtigungen zum Entfernen der VCDB-Instanz verfügen.
Im Kapitel zum Aufsetzen einer VCDB mithilfe der Shell-Installationsskripten wird erläutert, wie die Zieldatenbank und der Besitzer manuell erstellt werden können. |
Ausführen im Admin-Mode
Wenn Sie Zugriff auf einen Datenbankbenutzer mit ausreichenden Administratorrechten haben, kann der create
Befehl
auch im Admin-Modus ausgeführt werden. In diesem Modus werden die Zieldatenbank und der Besitzer automatisch erstellt,
falls sie noch nicht vorhanden sind. Dadurch wird sichergestellt, dass die richtigen Einstellungen und Berechtigungen
angewendet werden. Der Admin-Modus bietet somit eine bequeme Möglichkeit, alle erforderlichen Datenbankobjekte in nur
einem Schritt anzulegen und einzurichten.
Um den Admin-Modus zu verwenden, müssen die folgenden zusätzlichen Verbindungsoptionen angegeben werden:
-
--db-admin-username
: Ein Datenbankbenutzer mit ausreichenden Administratorrechten. -
--db-admin-password
: Das Passwort des Admin-Benutzers. Leer lassen, um zur Eingabe aufgefordert zu werden. -
--db-admin-database
: Die Datenbank, mit der sich der Admin-Benutzer verbinden soll. Diese Option ist nur erforderlich, wenn eine Datenbank zum Herstellen einer Verbindung erforderlich ist. Für PostgreSQL wird standardmäßig die Datenbankpostgres
verwendet.
Bereits vorhandene Datenbanken und Benutzer werden unverändert übernommen und nicht angepasst. Wenn beispielsweise
die Zieldatenbank bereits existiert, aber erforderliche Erweiterungen fehlen, schlägt der create Befehl auch im
Admin-Modus fehl.
|
Koordinatenreferenzsystem festlegen
Für jede VCDB-Instanz muss ein Koordinatenreferenzsystem (CRS) angegeben werden, das die räumliche Referenz für die
in der Datenbank gespeicherten Geometrien definiert. Hierzu muss über die obligatorische Option --srid
die
datenbankspezifische SRID (Spatial Reference ID) des gewünschten CRS festgelegt werden. In den meisten Fällen
ist die SRID identisch mit dem EPSG-Code des CRS.
Die Option --crs-name
ermöglicht es, einen OGC-konformen Namen für das CRS festzulegen. Der CRS-Name wird
beispielsweise beim Export von Daten in die CityGML/CityJSON-Dateien geschrieben. Wird die Option weggelassen,
wird standardmäßig der URN-kodierte Name urn:ogc:def:crs:EPSG::<SRID>
verwendet, wobei <SRID>
durch den Wert der
--srid
Option ersetzt wird.
Das Koordinatenreferenzsystem kann jederzeit nach dem Aufsetzen der VCDB mit der Datenbankfunktion
citydb_pkg.change_schema_srid geändert werden. Weitere Informationen finden sich im Abschnitt
Datenbank-Funktionen.
|
Changelog-Erweiterung
Es kann ausgewählt werden, ob die Changelog-Erweiterung für die neue VCDB-Instanz installiert und aktiviert werden soll.
Die Changelog-Erweiterung fügt eine weitere Tabelle zum VCDB-Schema hinzu, in der Import-, Delete- und
Update-Operationen an Top-Level Stadtobjekten getrackt werden. Um die Changelog-Erweiterung zu aktivieren, muss
einfach nur die Option --enable-changelog
gesetzt werden.
Bei aktivierter Changelog-Erweiterung können Import-, Delete- und Update-Operationen aufgrund der zusätzlichen Protokollierung länger dauern. |
Ausgabe und Logging
Das folgende Beispiel zeigt die Verwendung des create
Befehls.
-
Linux
-
Windows CMD
./vcdb database create \
-H localhost \
-d citydb \ # Zieldatenbank
-u citydb_user \ # Besitzer der VCDB-Instanz
-p mySecret \
--db-admin-user admin_user \ # Admin-User zum Anlegen der Zieldatenbank und des Besitzers
--db-admin-password adminSecret \
--srid 25832 \
--enable-changelog
vcdb database create ^
-H localhost ^
-d citydb ^ # Zieldatenbank
-u citydb_user ^ # Besitzer der VCDB-Instanz
-p mySecret ^
--db-admin-user admin_user ^ # Admin-User zum Anlegen der Zieldatenbank und des Besitzers
--db-admin-password adminSecret ^
--srid 25832 ^
--enable-changelog
Beim Ausführen des create
Befehls werden Log-Meldungen in der Konsole ausgegeben, die den Fortschritt der
Operation dokumentieren. Bei erfolgreicher Ausführung werden die Datenbankdetails der neu erstellten VCDB-Instanz auf
der Konsole ausgegeben. Im Fehlerfall enthält die Log-Ausgabe eine entsprechende Fehlermeldung, die bei der
Identifizierung der Fehlerursache unterstützt.
Wenn die Option --log-level auf debug gesetzt ist, enthält das Log-Protokoll zusätzlich die Ausgaben des
Datenbank-Clients, der die SQL-Skripte ausführt.
|
Die Datenbankdetails der VCDB-Instanz können mithilfe der --output
Option auch im JSON-Format ausgegeben werden. Wird ein
Dateipfad angegeben, dann wird die JSON-Ausgabe in diese Datei geschrieben. Wird anstelle eines Dateipfads -
verwendet, dann erfolgt die JSON-Ausgabe auf stdout
. Auf diese Weise lässt sich die JSON-Ausgabe einfach umleiten und
mit externen Werkzeugen weiterverarbeiten.
Die folgenden Beispiele zeigen die Verwendung der Option --output
.
-
Linux
-
Windows CMD
./vcdb database create [...] -o new-vcdb.json # JSON in Datei schreiben
./vcdb database create [...] -o - # JSON auf stdout ausgeben
./vcdb database create [...] -o - > new-vcdb.json # stdout in Datei umleiten
vcdb database create [...] -o new-vcdb.json # JSON in Datei schreiben
vcdb database create [...] -o - # JSON auf stdout ausgeben
vcdb database create [...] -o - > new-vcdb.json # stdout in Datei umleiten
Die JSON-Ausgabe enthält die Verbindungsparameter wie die Zieldatenbank und den Besitzer der VCDB-Instanz sowie
weitere relevante Metdaten der Datenbank. Es wird die gleiche Struktur wie bei der Ausgabe des info
Befehls genutzt.
{
"connection": {
"host": "localhost",
"port": 5432,
"database": "citydb",
"schema": "citydb",
"user": "citydb_user"
},
"database": {
"name": "VC Database",
"version": "5.0.0",
"dbms": {
"name": "PostgreSQL",
"version": "17.2",
"properties": {
"postgis": {
"name": "PostGIS",
"value": "3.5.0"
},
"postgis_sfcgal": {
"name": "SFCGAL",
"value": "1.5.2"
}
}
},
"hasChangelogEnabled": true,
"crs": {
"srid": 25832,
"identifier": "urn:ogc:def:crs:EPSG::25832",
"name": "ETRS89 / UTM zone 32N"
}
}
}
Die Struktur der JSON-Ausgabe wird durch die JSON Schema-Datei connection-info.json.schema definiert, die sich im
Ordner json-schema des vcdb-tool Installationsverzeichnisses befindet.
|