source: trunk/import/datenbank_anlegen.sh @ 406

Revision 353, 4.9 KB checked in by frank.jaeger, 3 years ago (diff)

kleine Verbesserungen am Post-Processing

Line 
1#!/bin/bash
2## -------------------------------------------------
3## Konvertierung von ALKIS NAS-Format nach PostGIS -
4## Teil 1: Eine neue PostGIS-Datenbank anlegen     -
5## -------------------------------------------------
6##
7## Stand:
8##  2012-02-10 F.J. krz: PostNAS 07, Umbenennung
9##  2013-01-15 F.J. krz: Zwischenstopp um Meldungen lesen zu können bevor, sie aus dem Scrollbereich verschwinden
10##  2013-04-16 F.J. krz: Vers.-Nr. "0.7" aus dem Dateinamen von Schema und Keytable entfernt, sichten_wms.sql
11##  2013-10-16 F.J. krz: Neues Sript "pp_praesentation_sichten.sql" fÃŒr Reparatur PrÀsentationsobjekte Straßennamen
12##  2013-12-03 F.J. krz: Script "sichten.sql" einbeziehen. Darin View "doppelverbindung" fuer WMS FS-Kommunal.
13##  2014-01-31 F.J. krz: Unterschiede der Datenbank-Struktur fÃŒr die Varianten MIT/OHNE Historie.
14##  2014-09-08 F.J. krz: PostNAS 08 - Umbenennung, Kommentare, "pp_praesentation_sichten.sql" entfernen
15##  2015-01-14 F.J. krz: Pfad der Logfiles
16
17POSTNAS_HOME=$(dirname $0)
18MANDANT_HOME=$PWD
19
20# Koniguration: Koordinatensystem fuer Geometriefelder.
21# Wird im Folgenden mit Parameter "-v" an psql ÃŒbergeben.
22EPSG=25832
23
24## Dialog mit Anwender
25function get_db_config(){
26        # welches Datenbank-Template?
27        echo " "
28        echo "Datenbank-Template fuer die neue ALKIS-Datenbank?"
29        echo " (einfach Enter fuer die Voreinstellung template_postgis)"
30        read DBTEMPLATE
31        : ${DBTEMPLATE:="template_postgis"}
32#
33        # Name der neuen ALKIS-Datenbank
34        until [ -n "$DBNAME" ]
35        do
36                echo " "
37                echo "Name der ALKIS-Datenbank?"
38                read DBNAME
39        done
40        echo " "
41        echo "Datenbank-User?  (Dieser muss eine gleichnamige Service-Datenbank haben)"
42        read DBUSER
43#
44        until [ "$JEIN" = "j" -o "$JEIN" = "n" ]
45        do
46                echo " "
47                echo "Datenbank $DBNAME wird GELOESCHT und neu angelegt  - j oder n?"
48                read JEIN
49        done
50}
51
52## aller Laster  ANFANG
53get_db_config;
54if test $JEIN != "j"
55then
56        echo "Abbruch"
57        exit 1
58fi
59
60cd $POSTNAS_HOME
61
62if ! [ -e alkis-trigger.sql ]; then
63        if ln -s alkis-trigger-kill.sql alkis-trigger.sql; then
64                echo "** Symlink zu alkis-trigger-kill.sql (KEINE HISTORIE) wurde angelegt"
65        else
66                echo "** alkis-trigger.sql FEHLT!"
67                exit 1
68        fi
69fi
70
71## Datenbank-Connection:
72# -h localhost
73con="-p 5432 -d ${DBNAME} "
74echo "connection " $con
75
76echo "
77******************************
78**  Neue ALKIS-Datenbank    **
79******************************
80 
81** Loeschen Datenbank " ${DBNAME}
82
83## Hier wird vorausgesetzt, dass der User eine Service-DB hat, die seinen Namen traegt
84psql -p 5432 -d ${DBUSER} -U ${DBUSER} -c "DROP database ${DBNAME};"
85
86echo "
87** Anlegen (leere) PostGIS-Datenbank"
88createdb --port=5432 --username=${DBUSER} -E utf8  -T ${DBTEMPLATE} ${DBNAME}
89
90echo "
91** Anlegen der Datenbank-Struktur fuer PostNAS 0.8 (alkis_PostNAS_schema.sql)"
92psql $con -v alkis_epsg=$EPSG -U ${DBUSER} -f alkis_PostNAS_schema.sql >$POSTNAS_HOME/log/schema.log
93
94# Zwischenstopp zum Betrachten der Ausgabe.
95# Die Menge der Zeilen ist sonst nicht mehr lesbar.
96until [ "$CHECK" = "j" -o "$CHECK" = "n" ]
97do
98    echo " "
99        echo "    Weiter?  'j' (weiter) oder 'n' (Abbruch)"
100        read CHECK
101done
102if test $CHECK != "j"; then
103        echo " Abbruch!"
104        exit 1
105fi
106
107## Kommentar zur Datenbank (allgemein)
108psql $con -U ${DBUSER} -c "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.8';"
109
110## Kann man das Ziel des Symlinks abfragen? Wenn Kill, dann ...
111##   if [ -e alkis-trigger.sql ]; then
112
113        # echo "
114        # ** Besonderheiten der Datenbank OHNE Historie"
115        ## Zeilen auskommentieren, wenn die Datenbank MIT Historie gefÃŒhrt wird.
116        ## Import-ID: Tabelle und Spalte in "alkis_beziehungen" anlegen
117
118        # psql $con -U ${DBUSER} -f alkis_PostNAS_schema_ohneHist.sql >$MANDANT_HOME/log/schema.log
119        # psql $con -U ${DBUSER} -c "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.8 - Ohne Historie';"
120
121## fi
122
123echo "
124** Anlegen der Datenbank-Struktur - zusaetzliche Schluesseltabellen"
125## Nur die benoetigten Tabellen fuer die Buchauskunft
126psql $con -U ${DBUSER} -f alkis_PostNAS_keytables.sql >$POSTNAS_HOME/log/keytables.log
127
128echo "
129** Anlegen Optimierung Nutzungsarten (nutzungsart_definition.sql)"
130psql $con -v alkis_epsg=$EPSG -U ${DBUSER} -f nutzungsart_definition.sql
131
132echo "
133** Laden NUA-Metadaten (nutzungsart_metadaten.sql) Protokoll siehe log"
134psql $con -U ${DBUSER} -f nutzungsart_metadaten.sql >$POSTNAS_HOME/log/meta.log
135
136echo "
137** Anlegen Post Processing Tabellen (pp_definition.sql)"
138psql $con -v alkis_epsg=$EPSG  -U ${DBUSER} -f pp_definition.sql >$POSTNAS_HOME/log/pp_definition.log
139
140echo "
141** Definition von Views fuer Kartendienste (sichten_wms.sql)"
142psql $con -U ${DBUSER} -f sichten_wms.sql >$POSTNAS_HOME/log/sichten_wms.log
143
144echo "
145** Definition von Views (sichten.sql)"
146psql $con -U ${DBUSER} -f sichten.sql >$POSTNAS_HOME/log/sichten.log
147
148echo "
149** Berechtigung (grant.sql) Protokoll siehe log"
150psql $con -U ${DBUSER} -f grant.sql >$POSTNAS_HOME/log/log_grant.log
151
152echo "
153*************************************
154**  Ende Neue Datenbank ${DBNAME} **
155*************************************
156 "
Note: See TracBrowser for help on using the repository browser.