source: trunk/import/datenbank_anlegen.sh @ 330

Revision 330, 4.8 KB checked in by frank.jaeger, 7 years ago (diff)

Umstellung von PostNAS 0.7 auf PostNAS 0.8, ohne Tabelle "alkis_beziehungen".

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