2.3. Initialisierung der Datenbank
Für die Konfiguration der Datenbank können sie pgAdmin verwenden.
Bemerkung
Mit diesem Link können sie lernen wie man Installation von pgAdmin benutzt.
2.3.1. Vorgehen
In pgAdmin4
Verbinden Sie sich mit dem Datenbankserver
Create a new database with UTF8 encoding
E.g. tww_demo, avoid spaces, dots, uppercases and special characters As proposed in https://stackoverflow.com/questions/2878248/postgresql-naming-conventions
2.3.1.1. Rollen und Zugriffsrechte erstellen
TWW roles are defined in the + 12_0_roles.sql (per cluster) + 12_1_roles.sql (per database)
12_0_roles.sql has to be run before restoring the demodata database. 12_1_roles.sql has to be run if you initialize your module with with the commandline.
An evolution of the roles management is in progress and will be available soon.
It is highly recommended to use these when using TWW in a production environment.
Copy paste and run the .sql files content in the query editor of pgAdmin (Tools > Query Tool).
2.3.1.2. Restore data model with demodata
Warnung
Demodata only available as an INTERLIS file The undeling procedure is now providing an empty datamodel with value lists.
The demodata is now only available in INTERLIS format but can be easily imported with the plugin IMPORT tool.
Das aktuelle Datenbank-Schema mit dem Demodatensatz einrichten
Download demo data * https://github.com/teksi/wastewater/releases/latest * download tww_vx.y.z_structure_and_demo_data.backup
Weiter in pgAdmin:
Right click the tww_demo database
‚Restore‘ wählen
Load your download of tww_vx.y.z_structure_and_demo_data.backup
Klicken Sie den Restore Option-Tab und überprüfen Sie die folgenden Optionen
‚Restore‘ wählen
Kontrollieren sie im Fenster Restoring backup on the server, ob der Abschluss erfolgreich war.
Bemerkung
Wenn die Wiederherstellung nicht funktioniert und unter more details etwas steht wie „pg_restore: [archiver] unsupported version (1.13) in file header“ resp. in Deutsch „pg_restore: [Archivierer] nicht unterstützte Version (1.13) im Dateikopf“ updaten sie PostgreSQL, vgl. https://stackoverflow.com/questions/49064209/getting-archiver-unsupported-version-1-13-in-file-header-when-running-pg-r
Bemerkung
If the Restore failed and the detail reads something like „pg_restore: error: could not execute query: FEHLER: role »tww_viewer« does not exist then you have not created the minimal roles (see above)
Schliessen sie das Wiederherstellungsfenster
Recktsklick auf die Datenbank und ‚Refresh‘ wählen
Vermutlich wollen sie die Datenbank jetzt umbenennen: Rechtsklick auf die Datenbank, klick auf Eigenschaften… und geben sie einen neuen Namen ein.
There are now 6 schemas in the database
public
tww_app
tww_cfg
tww_od
tww_sys
tww_vl
2.3.1.3. Leeres Datenbank-Schema
Es ist auch möglich, ein leeres Datenbank-Schema zu erstellen (ohne Demodatensatz).
Download the data model by going to https://github.com/teksi/wastewater/releases and by downloading the latest tww_vx.y.z_structure_with_value_lists.sql.
Bemerkung
Wenn dieses SQL in einem SQL Abfrage Fenster gestartet wird, gibt es einen Fehler. Es muss ein BAT-File benutzt werden.
Benutze eine BAT-Datei wie folgt, um die Datenbank, die Erweiterungen und die Schemata mit Wertelisten zu erzeugen (ersetzen sie x.y.z mit ihrer Versionnummer):
@echo off set filename="tww_vx.y.z_structure_with_value_lists.sql" if not exist %filename% ( echo "File %filename% does not exist. Please download the latest datamodel from https://github.com/TWW/datamodel/releases (structure_with_value_lists.sql) and adjust filename in this batch file." PAUSE exit -1 ) set /p db="Please enter the database name? (e.g. tww_community) " set /p password="Please enter the password for user postgres? " set port=5432 set PATH=%PATH%;C:\Program Files\PostgreSQL\15\bin set PGPASSWORD=%password% createdb -U postgres -p %port% %db% psql -U postgres -h localhost -p %port% -d %db% -f %filename% psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA public TO ""tww""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA tww_vl TO ""tww""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA tww_od TO ""tww""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA tww_import TO ""tww""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA tww_swmm TO ""tww""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON SCHEMA tww_sys TO ""tww""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA tww_od TO ""tww"""; psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA tww_swmm TO ""tww"""; psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA tww_import TO ""tww"""; psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT ON ALL TABLES IN SCHEMA tww_vl TO ""tww"""; psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT ON ALL TABLES IN SCHEMA tww_sys TO ""tww"""; psql -U postgres -h localhost -p %port% -d %db% -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO ""tww""" psql -U postgres -h localhost -p %port% -d %db% -c "GRANT USAGE ON ALL SEQUENCES IN SCHEMA tww_od TO ""tww""" psql -U postgres -h localhost -p %port% -d %db% -c "REFRESH MATERIALIZED VIEW tww_od.vw_network_node" psql -U postgres -h localhost -p %port% -d %db% -c "REFRESH MATERIALIZED VIEW tww_od.vw_network_segment" PAUSE
Bemerkung
Es kann irgendein Datenbankname verwendet werden.
Update privileges for the tww_od, tww_sys, tww_vl, tww_network, tww_import, tww_swmm schema as described in the chapter Create minimal roles and access.
2.3.1.4. Erzeugen des Datenmodells unter Linux
Es ist auch unter LINUX möglich das Datenmodell zu erzeugen
Download des Datenmodells
git clone https://github.com/TWW/datamodel cd datamodel
Setup the
pg_service.conf
file and add thepg_tww
service as in the Linux/macOS pg_service section.Erzeugen der Datenbank
psql -U postgres -c 'CREATE DATABASE tww;'
Starten Sie das Skript:
./scripts/db_setup.sh
Wenn Sie eine andere SRID verwenden möchten, dann benutzen Sie die -s
option. Zum Beispiel ./scripts/dbsetup.sh -s 2056
für SRID 2056.
Wenn Sie schon ein Datenmodell haben und dieses erneut erzeugen möchten, dann nutzen Sie die -f` Option: ./scripts/db_setup.sh -f
.
You can use the -r
option to add roles (tww_viewer
, tww_user
, tww_manager
, tww_sysadmin
).
Viewer: Kann Tabellen und Views anschauen.
User: Kann Daten editieren.
Manager: Kann Daten und Wertebereiche bearbeiten.
Admin: Datenbank Administrator.