source: trunk/import/datenbank_anlegen.sh @ 327

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