From 865dcb7bf824412cf5a29556b623e385ed005ad4 Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Wed, 10 Jul 2024 07:38:42 +0200 Subject: [PATCH 01/18] Add script to import csv data into the database --- data/db/import.csv | 3 ++ data/db/import_csv.sql | 114 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 data/db/import.csv create mode 100644 data/db/import_csv.sql diff --git a/data/db/import.csv b/data/db/import.csv new file mode 100644 index 00000000..212208cd --- /dev/null +++ b/data/db/import.csv @@ -0,0 +1,3 @@ +Klassifizierung,Wirtschaftszweig,Firmenname,Name,Vorname,E-Mail,Telefon,Fax,Plz,Ort,Straße,Hausnr.,Zusatz,Bermerkung +Beispielklassifizerung,12.11. Beispielwirtschaftszweig,,Mustermann,Max,max.mustermann@example.test,01234-123123,01234-321321,33602,Bielefeld,August-Bebel-Straße,75,,Bemerkung1 +Beispielklassifizerung,12.12. Beispielwirtschaftszweig2,,Mustermann,Erika,erika.mustermann@example.test,01234-543543,01234-345345,33602,Bielefeld,August-Bebel-Straße,75,a,Bemerkung2 diff --git a/data/db/import_csv.sql b/data/db/import_csv.sql new file mode 100644 index 00000000..bd190fb8 --- /dev/null +++ b/data/db/import_csv.sql @@ -0,0 +1,114 @@ +--Script to import data from a csv input into the auik database +--Expected filename is: import.csv +--Expected format is: +--Klassifizierung,Wirtschaftszweig,Firmenname,Name,Vorname,E-Mail,Telefon,Mobiltelefon,Plz,Ort,Straße,Hausnr.,Zusatz,Bermerkung +--(Header is suported, Expected delimiter: ,) + +BEGIN; +-- Create temporary import table +CREATE TABLE IF NOT EXISTS temp_import ( + id SERIAL PRIMARY KEY, + klassifizierung character varying(255), + wirtschaftszweig character varying(255), + firmenname character varying(255), + name character varying(255), + vorname character varying(255), + email character varying(255), + telefon character varying(255), + mobil character varying(255), + plz character varying(255), + ort character varying(255), + strasse character varying(255), + hausnr integer, + zusatz character varying(255), + bemerkung character varying(255) +); + +CREATE OR REPLACE FUNCTION insert_row( + klassifizierung character varying(255), + wirtschaftszweig_name character varying(255), + firmenname character varying(255), + name character varying(255), + vorname character varying(255), + email character varying(255), + telefon character varying(255), + mobil character varying(255), + plz character varying(255), + ort character varying(255), + strasse character varying(255), + hausnr integer, + zusatz character varying(255), + bemerkung character varying(255) +) +RETURNS void +AS $$ +DECLARE + address_id integer; + wirtschaftszweig_id integer; +BEGIN + -- Insert basis.adresse part and return id + INSERT INTO basis.adresse (strasse, hausnr, hausnrzus, plz, ort) + VALUES (strasse, hausnr, zusatz, plz, ort) + RETURNING id INTO address_id; + -- Get or insert wirtschaftszweig + IF EXISTS (SELECT 1 FROM basis.wirtschaftszweig WHERE wirtschaftszweig = wirtschaftszweig_name) THEN + SELECT id INTO wirtschaftszweig_id + FROM basis.wirtschaftszweig + WHERE wirtschaftszweig = wirtschaftszweig_name; + ELSE + INSERT INTO basis.wirtschaftszweig (id, wirtschaftszweig) + VALUES ( + (SELECT COALESCE(MAX(id) + 1, 0) FROM basis.wirtschaftszweig), + wirtschaftszweig_name + ); + SELECT MAX(id) FROM basis.wirtschaftszweig INTO wirtschaftszweig_id; + END IF; + + -- Insert inhaber + INSERT INTO basis.inhaber (adresseid, name, namebetrbeauf, vornamebetrbeauf, telefon, telefax, email, + bemerkungen, wirtschaftszweigid) + VALUES (address_id, firmenname, name, vorname, telefon, mobil, email, bemerkung, wirtschaftszweig_id); +END; +$$ +LANGUAGE plpgsql; + +-- Copy import data to temporary table +COPY temp_import( + klassifizierung, wirtschaftszweig, firmenname, + name, vorname, email, telefon, mobil, plz, ort, strasse, + hausnr, zusatz, bemerkung) +FROM '/opt/auik_db/import.csv' +DELIMITER ',' +CSV HEADER; + +-- Copy data to their respective tables +DO +$$ +DECLARE resultRow RECORD; +BEGIN + FOR resultRow IN + SELECT * FROM temp_import + LOOP + PERFORM insert_row( + resultRow.klassifizierung , + resultRow.wirtschaftszweig, + resultRow.firmenname, + resultRow.name, + resultRow.vorname, + resultRow.email, + resultRow.telefon, + resultRow.mobil, + resultRow.plz, + resultRow.ort, + resultRow.strasse, + resultRow.hausnr, + resultRow.zusatz, + resultRow.bemerkung + ); + END LOOP; +END +$$; + +-- Clear temporary table +DROP TABLE temp_import; +COMMIT; From 6693feeeb6c53cc8bf73818a8ee51e3b065b6968 Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Wed, 10 Jul 2024 07:40:42 +0200 Subject: [PATCH 02/18] Update .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 525681ca..5ba9cb82 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /target/ /.classpath /.project +.vscode +bin From 800b7d3fcd3bfaf3682c5dad5579a568223213e4 Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Wed, 10 Jul 2024 09:15:06 +0200 Subject: [PATCH 03/18] Add Dockerfile for database setup This allows to quickly setup a database for an development setup --- docker/Dockerfile | 27 +++++++++++++++++++++++++++ docker/init_db.sh | 22 ++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 docker/Dockerfile create mode 100755 docker/init_db.sh diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..c3ffb007 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,27 @@ +ARG POSTGRES_VERSION=13 +FROM postgres:${POSTGRES_VERSION}-bookworm + +LABEL maintainer="awoestmann@intevation.de" + +ARG POSTGRES_VERSION +ARG POSTGIS_VERSION=3 + +# Postgres password +ENV POSTGRES_PASSWORD secret +#DB name +ENV DB_NAME fisumwelt +#AUIK user and password +ENV USERNAME auikadmin +ENV USER_PW secret + +RUN apt-get update && apt-get install -y postgresql-${POSTGRES_VERSION}-postgis-${POSTGIS_VERSION} + +USER postgres + +#Copy init script +COPY docker/init_db.sh /docker-entrypoint-initdb.d/ + +ADD data/db /opt/auik_db/ +WORKDIR /opt/auik_db/ + +CMD ["/usr/local/bin/docker-entrypoint.sh","postgres"] diff --git a/docker/init_db.sh b/docker/init_db.sh new file mode 100755 index 00000000..54fc9171 --- /dev/null +++ b/docker/init_db.sh @@ -0,0 +1,22 @@ +#!/bin/sh -e +echo "###Setting up database###" + +schema_dir=/opt/auik_db +schema_file=$schema_dir/version1_0_schema.sql +update_file_1_1_0=$schema_dir/updateTo_1_1_0.sql +import_script=$schema_dir/import_csv.sql + +psql --command "CREATE DATABASE $DB_NAME;" >> /dev/null +psql -d $DB_NAME --command "CREATE EXTENSION postgis;" >> /dev/null +#Create user and assign roles +psql -d $DB_NAME --command "CREATE USER ${USERNAME} with password '${USER_PW}';" >> /dev/null +psql -d $DB_NAME --command "ALTER USER ${USERNAME} with superuser;" >> /dev/null + +echo "Database: $DB_NAME" +echo "Example user(password): ${USERNAME}(${USER_PW})" + +echo "Applying schema" +psql -d $DB_NAME -f $schema_file >> /dev/null +psql -d $DB_NAME -f $update_file_1_1_0 >> /dev/null +psql -d $DB_NAME -f $import_script + From 2d01141cb100c3043d73ba50b6ef9f2e0f943fd5 Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Wed, 10 Jul 2024 09:24:33 +0200 Subject: [PATCH 04/18] Add instructions for a development setup to README --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/README.md b/README.md index c8a8219b..3c719e10 100644 --- a/README.md +++ b/README.md @@ -16,3 +16,51 @@ geografischen Daten können Sachdaten mit den erfassten Informationen verschnitten werden. Darüber hinaus können automatisch Einträge in Datensätze aufgrund ihrer räumlichen Zugehörigkeit zu beispielsweise Entwässerungsgebieten, Wasserschutzgebieten etc. generiert werden. + +## Entwicklungsumgebung + +Für das Aufsetzen einer Entwicklungsumgebung wird zuerst eine PostgreSQL-Datenbank benötigt. +Diese kann über das vorhandene Dockerfile erstellt werden: + +```bash +docker build -t auik/db -f docker/Dockerfile . +docker run --name auik_db -p15432:5432 -v $PWD/data/db:/opt/auik_db -d auik/db +``` + +Die Datenbank ist dann unter Port `15432` mit dem Datenbanknamen `fisumwelt` erreichbar. Ein Login ist möglich als Nutzer `auikadmin` mit dem Passwort `secret`. + +Alternativ kann die Datenbank über die Skripte in `data/db` manuell erstellt werden. + +```bash +cd data/db +psql --command "CREATE DATABASE fisumwelt;" +psql -d fisumwelt --command "CREATE EXTENSION postgis;" +psql -d fisumwelt --command "CREATE USER auikadmin with password 'secret';" +psql -d fisumwelt --command "ALTER USER auikadmin with superuser;" +psql -d fisumwelt -f version1_0_schema.sql +psql -d fisumwelt -f updateTo_1_1_0.sql +psql -d fisumwelt -f import_csv.sql +``` + +Vor dem Starten der Anwendung muss in der `auik.properties` der Eintrag `auik.system.dburl` gesetzt werden um die Verbindung mit der Datenbank zu ermöglichen. + +Beispielweise mit einer Datenbank erreichbar unter `localhost:15432` mit dem Datenbank-Namen `fisumwelt`: + +``` +auik.system.dburl=jdbc\:postgresql\://localhost\:15432/fisumwelt +``` + +Für die Anwendung selbst müssen `maven` und ein passendes JDK ab Version 11 (bspw. OpenJDK 11) installiert sein. + +Kompilieren und Starten der Anwendung: + +```bash +mvn clean compile exec:java +``` + +Erstellen eines Jar-Archivs: + +```bash +mvn clean package +``` +Das Archiv ist im Ordner `target` zu finden. From 21da89be63d88c8b6a039ec0a94ce756f9a3b026 Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Fri, 19 Jul 2024 06:55:03 +0200 Subject: [PATCH 05/18] Replace primitive with Boolean object in Adresse mapping This avoids errors when null values are assigned --- .../umweltamt/aui/mappings/basis/Adresse.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/de/bielefeld/umweltamt/aui/mappings/basis/Adresse.java b/src/de/bielefeld/umweltamt/aui/mappings/basis/Adresse.java index bba0a820..6638ebcb 100644 --- a/src/de/bielefeld/umweltamt/aui/mappings/basis/Adresse.java +++ b/src/de/bielefeld/umweltamt/aui/mappings/basis/Adresse.java @@ -66,7 +66,7 @@ public class Adresse implements java.io.Serializable { private String strasseeigent; private String sachbe33rav; private String sachbe33hee; - private boolean ueberschgeb; + private Boolean ueberschgeb; private String bemerkungen; private Date revidatum; private String revihandz; @@ -94,13 +94,13 @@ public Adresse( /** Full constructor */ public Adresse( - Integer id, Standortgghwsg standortgghwsg, Wassereinzugsgebiet wassereinzugsgebiet, Gemarkung gemarkung, - String strasse, Integer hausnr, String hausnrzus, String plzzs, String plz, String ort, - String flur, String flurstueck, String entgebid, String strasseeigent, - String sachbe33rav, String sachbe33hee, boolean ueberschgeb, + Integer id, Standortgghwsg standortgghwsg, Wassereinzugsgebiet wassereinzugsgebiet, Gemarkung gemarkung, + String strasse, Integer hausnr, String hausnrzus, String plzzs, String plz, String ort, + String flur, String flurstueck, String entgebid, String strasseeigent, + String sachbe33rav, String sachbe33hee, Boolean ueberschgeb, String bemerkungen, Date revidatum, String revihandz, boolean enabled, - boolean deleted, Date erstellDat, Integer iglId, + boolean deleted, Date erstellDat, Integer iglId, Set inhabers) { this.id = id; this.strasse = strasse; @@ -262,7 +262,7 @@ public Boolean isUeberschgeb() { return this.ueberschgeb; } - public void setUeberschgeb(boolean ueberschgeb) { + public void setUeberschgeb(Boolean ueberschgeb) { this.ueberschgeb = ueberschgeb; } From 389b8347bf3fbd999e636c375b853bdd39a43bdd Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Fri, 19 Jul 2024 06:58:08 +0200 Subject: [PATCH 06/18] Remove obsolete modules from auik.properties --- auik.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/auik.properties b/auik.properties index 1cac121f..94c1a819 100644 --- a/auik.properties +++ b/auik.properties @@ -41,7 +41,7 @@ auik.prefs.divloc_betreiber=0.6643356680870056 auik.prefs.size_x.dialog_BasisStandort=768 auik.prefs.size_y.dialog_Entsorger=227 auik.prefs.size_x.dialog_VawsFachdaten-Rohrleitung=763 -auik.system.module=BasisStandortSuchen, BasisAdresseSuchen, DirekteinleiterSuchen, BasisObjektBearbeiten, BasisAdresseNeu, BasisAuswertung, AwsvChronologieAuswertung, AwsvHerstellernummerSuchen, AwsvKontrollenAuswertung, AwsvVerwaltungsverfAuswertung, EditorEinheiten, EditorEntsorger, EditorGemarkungen, EditorKlaeranlagen, EditorObjektarten, EditorParameter, EditorSachbearbeiter, EditorTabStreets, EditorWSG, EinleiterAnfallstelleAuswertung, EinleiterAnh49Auswertung, EinleiterAnh50Auswertung, EinleiterAnh56Auswertung, EinleiterBescheidAuswertung, EinleiterBrennwertAuswertung, EinleiterFettabscheiderAuswertung, EinleiterGenehmigungAuswertung, EinleiterPrioritaetAuswertung, KlaerschlammAuswertung, KlaerschlammFaulschlammproben, KlaerschlammRohschlammproben, LaborProbeSuchen, AnalyseImport, ProbepunkteAuswertung, SielhautBearbeiten, SielhautImport, ELKASync +auik.system.module=BasisStandortSuchen, BasisAdresseSuchen, DirekteinleiterSuchen, BasisObjektBearbeiten, BasisAdresseNeu, AwsvChronologieAuswertung, AwsvHerstellernummerSuchen, AwsvKontrollenAuswertung, AwsvVerwaltungsverfAuswertung, EditorEinheiten, EditorEntsorger, EditorGemarkungen, EditorKlaeranlagen, EditorObjektarten, EditorParameter, EditorSachbearbeiter, EditorTabStreets, EditorWSG, EinleiterAnh49Auswertung, EinleiterBescheidAuswertung, EinleiterBrennwertAuswertung, EinleiterFettabscheiderAuswertung, KlaerschlammAuswertung, KlaerschlammFaulschlammproben, KlaerschlammRohschlammproben, LaborProbeSuchen, ProbepunkteAuswertung, SielhautBearbeiten, ELKASync auik.prefs.size_y.dialog_VawsFachdaten-Rohrleitung=648 auik.prefs.size_x.dialog_BasisBetreiber=1090 auik.elka.lastuser=elka-kr711 From b3ea4d07d21f73a637f7f1a0cee2a0ba45eca2f0 Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Fri, 19 Jul 2024 07:04:27 +0200 Subject: [PATCH 07/18] Update README.md --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index 3c719e10..ccf95ccc 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,8 @@ Entwässerungsgebieten, Wasserschutzgebieten etc. generiert werden. ## Entwicklungsumgebung +### Aufsetzen der Datenbank + Für das Aufsetzen einer Entwicklungsumgebung wird zuerst eine PostgreSQL-Datenbank benötigt. Diese kann über das vorhandene Dockerfile erstellt werden: @@ -42,6 +44,8 @@ psql -d fisumwelt -f updateTo_1_1_0.sql psql -d fisumwelt -f import_csv.sql ``` +### Konfigurieren der Anwendung + Vor dem Starten der Anwendung muss in der `auik.properties` der Eintrag `auik.system.dburl` gesetzt werden um die Verbindung mit der Datenbank zu ermöglichen. Beispielweise mit einer Datenbank erreichbar unter `localhost:15432` mit dem Datenbank-Namen `fisumwelt`: @@ -50,6 +54,8 @@ Beispielweise mit einer Datenbank erreichbar unter `localhost:15432` mit dem Dat auik.system.dburl=jdbc\:postgresql\://localhost\:15432/fisumwelt ``` +### Starten der Anwendung + Für die Anwendung selbst müssen `maven` und ein passendes JDK ab Version 11 (bspw. OpenJDK 11) installiert sein. Kompilieren und Starten der Anwendung: @@ -64,3 +70,11 @@ Erstellen eines Jar-Archivs: mvn clean package ``` Das Archiv ist im Ordner `target` zu finden. + +Für die Anmeldung kann der Datenbankbenutzer verwendet werden: + +`auikadmin`, Passwort: `secret` + +## AUI-K Handbuch + +Das AUI-K Handbuch ist als pdf-Datei unter [doc/AUI-K_Handbuch.pdf](doc/AUI-K_Handbuch.pdf) zu finden. From 399ff7827ca7ef2dd83ac8e0f5856d43ae068229 Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Fri, 19 Jul 2024 07:11:29 +0200 Subject: [PATCH 08/18] Remove superuser privileges from docker setup db user --- docker/init_db.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/docker/init_db.sh b/docker/init_db.sh index 54fc9171..4281562a 100755 --- a/docker/init_db.sh +++ b/docker/init_db.sh @@ -10,7 +10,6 @@ psql --command "CREATE DATABASE $DB_NAME;" >> /dev/null psql -d $DB_NAME --command "CREATE EXTENSION postgis;" >> /dev/null #Create user and assign roles psql -d $DB_NAME --command "CREATE USER ${USERNAME} with password '${USER_PW}';" >> /dev/null -psql -d $DB_NAME --command "ALTER USER ${USERNAME} with superuser;" >> /dev/null echo "Database: $DB_NAME" echo "Example user(password): ${USERNAME}(${USER_PW})" From 4057017fd4df49e543cc0dfce0a54e804175ceb9 Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Fri, 19 Jul 2024 07:26:15 +0200 Subject: [PATCH 09/18] Update init db script to use -q param for psql commands --- docker/init_db.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker/init_db.sh b/docker/init_db.sh index 4281562a..ff1bfacf 100755 --- a/docker/init_db.sh +++ b/docker/init_db.sh @@ -6,16 +6,16 @@ schema_file=$schema_dir/version1_0_schema.sql update_file_1_1_0=$schema_dir/updateTo_1_1_0.sql import_script=$schema_dir/import_csv.sql -psql --command "CREATE DATABASE $DB_NAME;" >> /dev/null -psql -d $DB_NAME --command "CREATE EXTENSION postgis;" >> /dev/null +psql -q --command "CREATE DATABASE $DB_NAME;" +psql -q -d $DB_NAME --command "CREATE EXTENSION postgis;" #Create user and assign roles -psql -d $DB_NAME --command "CREATE USER ${USERNAME} with password '${USER_PW}';" >> /dev/null +psql -q -d $DB_NAME --command "CREATE USER ${USERNAME} with password '${USER_PW}';" echo "Database: $DB_NAME" echo "Example user(password): ${USERNAME}(${USER_PW})" echo "Applying schema" -psql -d $DB_NAME -f $schema_file >> /dev/null -psql -d $DB_NAME -f $update_file_1_1_0 >> /dev/null -psql -d $DB_NAME -f $import_script +psql -q -d $DB_NAME -f $schema_file +psql -q -d $DB_NAME -f $update_file_1_1_0 +psql -q -d $DB_NAME -f $import_script From 80c1c117e43c1535fae92b3d58ff3b2f3da92045 Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Fri, 19 Jul 2024 07:27:13 +0200 Subject: [PATCH 10/18] Update postgres version in Dockerfile --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index c3ffb007..2845035c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -ARG POSTGRES_VERSION=13 +ARG POSTGRES_VERSION=14 FROM postgres:${POSTGRES_VERSION}-bookworm LABEL maintainer="awoestmann@intevation.de" From 58c39304fcec5e8903a24b8039eb6589503d28fb Mon Sep 17 00:00:00 2001 From: Tom Gottfried Date: Fri, 19 Jul 2024 14:46:20 +0200 Subject: [PATCH 11/18] Luckily, that's not necessary --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index ccf95ccc..e217a3d9 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,6 @@ cd data/db psql --command "CREATE DATABASE fisumwelt;" psql -d fisumwelt --command "CREATE EXTENSION postgis;" psql -d fisumwelt --command "CREATE USER auikadmin with password 'secret';" -psql -d fisumwelt --command "ALTER USER auikadmin with superuser;" psql -d fisumwelt -f version1_0_schema.sql psql -d fisumwelt -f updateTo_1_1_0.sql psql -d fisumwelt -f import_csv.sql From 9bca03a6ad79441cfce37493cab11f1e885cd81b Mon Sep 17 00:00:00 2001 From: Tom Gottfried Date: Fri, 19 Jul 2024 14:54:02 +0200 Subject: [PATCH 12/18] Make use of SQL temporary table --- data/db/import_csv.sql | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/data/db/import_csv.sql b/data/db/import_csv.sql index bd190fb8..0a8cd059 100644 --- a/data/db/import_csv.sql +++ b/data/db/import_csv.sql @@ -6,7 +6,7 @@ BEGIN; -- Create temporary import table -CREATE TABLE IF NOT EXISTS temp_import ( +CREATE TEMP TABLE temp_import ( id SERIAL PRIMARY KEY, klassifizierung character varying(255), wirtschaftszweig character varying(255), @@ -109,6 +109,4 @@ BEGIN END $$; --- Clear temporary table -DROP TABLE temp_import; COMMIT; From 8429cbf4bc2b853c0a4ad5c92ddc7453fd3a7cf6 Mon Sep 17 00:00:00 2001 From: Tom Gottfried Date: Fri, 19 Jul 2024 16:51:24 +0200 Subject: [PATCH 13/18] Avoid writing password to stdout --- docker/init_db.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/docker/init_db.sh b/docker/init_db.sh index ff1bfacf..d461ddb3 100755 --- a/docker/init_db.sh +++ b/docker/init_db.sh @@ -11,9 +11,6 @@ psql -q -d $DB_NAME --command "CREATE EXTENSION postgis;" #Create user and assign roles psql -q -d $DB_NAME --command "CREATE USER ${USERNAME} with password '${USER_PW}';" -echo "Database: $DB_NAME" -echo "Example user(password): ${USERNAME}(${USER_PW})" - echo "Applying schema" psql -q -d $DB_NAME -f $schema_file psql -q -d $DB_NAME -f $update_file_1_1_0 From dab8a0b4183ed29972986bcdd9715d77b63d0e3c Mon Sep 17 00:00:00 2001 From: Tom Gottfried Date: Fri, 19 Jul 2024 17:03:03 +0200 Subject: [PATCH 14/18] Add example company names to test data --- data/db/import.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/db/import.csv b/data/db/import.csv index 212208cd..060c810c 100644 --- a/data/db/import.csv +++ b/data/db/import.csv @@ -1,3 +1,3 @@ Klassifizierung,Wirtschaftszweig,Firmenname,Name,Vorname,E-Mail,Telefon,Fax,Plz,Ort,Straße,Hausnr.,Zusatz,Bermerkung -Beispielklassifizerung,12.11. Beispielwirtschaftszweig,,Mustermann,Max,max.mustermann@example.test,01234-123123,01234-321321,33602,Bielefeld,August-Bebel-Straße,75,,Bemerkung1 -Beispielklassifizerung,12.12. Beispielwirtschaftszweig2,,Mustermann,Erika,erika.mustermann@example.test,01234-543543,01234-345345,33602,Bielefeld,August-Bebel-Straße,75,a,Bemerkung2 +Beispielklassifizerung,12.11. Beispielwirtschaftszweig,Muster GmbH,Mustermann,Max,max.mustermann@example.test,01234-123123,01234-321321,33602,Bielefeld,August-Bebel-Straße,75,,Bemerkung1 +Beispielklassifizerung,12.12. Beispielwirtschaftszweig2,Muster eG,Mustermann,Erika,erika.mustermann@example.test,01234-543543,01234-345345,33602,Bielefeld,August-Bebel-Straße,75,a,Bemerkung2 From 0839180fba2164e9fe776d6d5cfdf5b7f41af94c Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Fri, 26 Jul 2024 07:33:38 +0200 Subject: [PATCH 15/18] Fix typo in csv sample data --- data/db/import.csv | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/db/import.csv b/data/db/import.csv index 060c810c..a4373d29 100644 --- a/data/db/import.csv +++ b/data/db/import.csv @@ -1,3 +1,3 @@ -Klassifizierung,Wirtschaftszweig,Firmenname,Name,Vorname,E-Mail,Telefon,Fax,Plz,Ort,Straße,Hausnr.,Zusatz,Bermerkung -Beispielklassifizerung,12.11. Beispielwirtschaftszweig,Muster GmbH,Mustermann,Max,max.mustermann@example.test,01234-123123,01234-321321,33602,Bielefeld,August-Bebel-Straße,75,,Bemerkung1 -Beispielklassifizerung,12.12. Beispielwirtschaftszweig2,Muster eG,Mustermann,Erika,erika.mustermann@example.test,01234-543543,01234-345345,33602,Bielefeld,August-Bebel-Straße,75,a,Bemerkung2 +Klassifizierung,Wirtschaftszweig,Firmenname,Name,Vorname,E-Mail,Telefon,Fax,Plz,Ort,Straße,Hausnr.,Zusatz,Bemerkung +Beispielklassifizerung,12.11. Beispielwirtschaftszweig,,Mustermann,Max,max.mustermann@example.test,01234-123123,01234-321321,33602,Bielefeld,August-Bebel-Straße,75,,Bemerkung1 +Beispielklassifizerung,12.12. Beispielwirtschaftszweig2,,Mustermann,Erika,erika.mustermann@example.test,01234-543543,01234-345345,33602,Bielefeld,August-Bebel-Straße,75,a,Bemerkung2 From 5538c22d560bfd134f710443afcd89add159d2a9 Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Fri, 26 Jul 2024 08:04:03 +0200 Subject: [PATCH 16/18] Add instructions for csv import to readme --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index e217a3d9..94193e84 100644 --- a/README.md +++ b/README.md @@ -77,3 +77,24 @@ Für die Anmeldung kann der Datenbankbenutzer verwendet werden: ## AUI-K Handbuch Das AUI-K Handbuch ist als pdf-Datei unter [doc/AUI-K_Handbuch.pdf](doc/AUI-K_Handbuch.pdf) zu finden. + +## Datenimport + +Mithilfe des mitgelieferten [SQL-Skripts](data/db/import_csv.sql_) können Adressdaten als CSV in die Datenbank importiert werden. +Das entsprechende CSV muss dabei die folgenden Spalten enthalten: + +```csv +Klassifizierung,Wirtschaftszweig,Firmenname,Name,Vorname,E-Mail,Telefon,Fax,Plz,Ort,Straße,Hausnr.,Zusatz,Bemerkung +``` + +Die [CSV Beispieldatei](data/db/import.csv) kann hier als Vorlage dienen. + +Der Import selbst lässt sich bspw. über eine Kommandozeile auslösen: + +```bash +cd data/db +psql -d fisumwelt -f import_csv.sql +``` + +`fisumwelt` ist hier der Datenbankname, je nach Datenbank-Setup müssen ggf. weitere Parameter ergänzt werden. +Die Daten müssen für den Import als `import.csv` im selben Verzeichnis wie das SQL-Skript abgelegt werden. From c7e25b7fa64e5e2e4f9824ea0342754a256d7cbd Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Fri, 26 Jul 2024 08:13:58 +0200 Subject: [PATCH 17/18] Update csv import script to also import the classification field --- data/db/import_csv.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/db/import_csv.sql b/data/db/import_csv.sql index 0a8cd059..91a5391d 100644 --- a/data/db/import_csv.sql +++ b/data/db/import_csv.sql @@ -66,8 +66,8 @@ BEGIN -- Insert inhaber INSERT INTO basis.inhaber (adresseid, name, namebetrbeauf, vornamebetrbeauf, telefon, telefax, email, - bemerkungen, wirtschaftszweigid) - VALUES (address_id, firmenname, name, vorname, telefon, mobil, email, bemerkung, wirtschaftszweig_id); + bemerkungen, wirtschaftszweigid, namezus) + VALUES (address_id, firmenname, name, vorname, telefon, mobil, email, bemerkung, wirtschaftszweig_id, klassifizierung); END; $$ LANGUAGE plpgsql; From 8ecdbde94686a8ec24926127e45ff19ce895628c Mon Sep 17 00:00:00 2001 From: Alexander Woestmann Date: Fri, 26 Jul 2024 08:14:45 +0200 Subject: [PATCH 18/18] Readd example company names --- data/db/import.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/db/import.csv b/data/db/import.csv index a4373d29..a1b432bc 100644 --- a/data/db/import.csv +++ b/data/db/import.csv @@ -1,3 +1,3 @@ Klassifizierung,Wirtschaftszweig,Firmenname,Name,Vorname,E-Mail,Telefon,Fax,Plz,Ort,Straße,Hausnr.,Zusatz,Bemerkung -Beispielklassifizerung,12.11. Beispielwirtschaftszweig,,Mustermann,Max,max.mustermann@example.test,01234-123123,01234-321321,33602,Bielefeld,August-Bebel-Straße,75,,Bemerkung1 -Beispielklassifizerung,12.12. Beispielwirtschaftszweig2,,Mustermann,Erika,erika.mustermann@example.test,01234-543543,01234-345345,33602,Bielefeld,August-Bebel-Straße,75,a,Bemerkung2 +Beispielklassifizerung,12.11. Beispielwirtschaftszweig,Muster GmbH,Mustermann,Max,max.mustermann@example.test,01234-123123,01234-321321,33602,Bielefeld,August-Bebel-Straße,75,,Bemerkung1 +Beispielklassifizerung,12.12. Beispielwirtschaftszweig2,Muster eG,Mustermann,Erika,erika.mustermann@example.test,01234-543543,01234-345345,33602,Bielefeld,August-Bebel-Straße,75,a,Bemerkung2