diff options
Diffstat (limited to 'sci-geosciences/openstreetmap-postgis-db-setup/files/install-postgis-osm-db.sh')
-rwxr-xr-x | sci-geosciences/openstreetmap-postgis-db-setup/files/install-postgis-osm-db.sh | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/sci-geosciences/openstreetmap-postgis-db-setup/files/install-postgis-osm-db.sh b/sci-geosciences/openstreetmap-postgis-db-setup/files/install-postgis-osm-db.sh new file mode 100755 index 0000000..7efffd0 --- /dev/null +++ b/sci-geosciences/openstreetmap-postgis-db-setup/files/install-postgis-osm-db.sh @@ -0,0 +1,64 @@ +#!/bin/sh +set -e + +if [ -z $DBOWNER ]; then + DBOWNER=gis +fi +if [ -z $DBNAME ]; then + DBNAME=gis +fi + +# echo "Removing Old Database" +# sudo -u postgres dropdb $DBNAME >/dev/null 2>&1 || true + + echo "Create user $DBOWNER" + sudo -u postgres createuser --no-superuser --no-createdb --no-createrole "$DBOWNER" || true + + echo "Creating Database" + sudo -u postgres createdb -EUTF8 -O $DBOWNER $DBNAME + + echo "Initializing Database" + + sudo -u postgres createlang plpgsql $DBNAME || true + + echo "Initializing Spatial Extentions for postgresql 9.1" + file_postgis=/usr/share/postgresql/contrib/postgis-2.0/postgis.sql + file_spatial_ref=/usr/share/postgresql/contrib/postgis-2.0/spatial_ref_sys.sql + + sudo -u postgres psql $DBNAME <$file_postgis >/dev/null 2>&1 + sudo -u postgres psql $DBNAME <$file_spatial_ref >/dev/null 2>&1 + echo "Spatial Extentions initialized" + + echo "Initializing hstore" + echo "CREATE EXTENSION hstore;" | sudo -u postgres psql $DBNAME + + echo "Setting ownership to user $DBOWNER" + + echo 'ALTER TABLE geometry_columns OWNER TO ' $DBOWNER '; ALTER TABLE spatial_ref_sys OWNER TO ' $DBOWNER ';' | sudo -u postgres psql $DBNAME + + + +if [ -n "$GRANT_USER" ] ; then + + if [ "$GRANT_USER" = "*" ] ; then + echo "GRANT Rights to every USER" + GRANT_USER='' + for user in `users` ; do + GRANT_USER="$GRANT_USER $user" + done + fi + + for user in $GRANT_USER; do + sudo -u postgres createuser --no-superuser --no-createdb --no-createrole "$user" || true + echo "Granting rights to user '$user'" + ( + echo "GRANT ALL on geometry_columns TO \"$user\";" + echo "GRANT ALL ON SCHEMA PUBLIC TO \"$user\";" + echo "GRANT ALL on spatial_ref_sys TO \"$user\";" + )| sudo -u postgres psql -U postgres $DBNAME + done +else + echo "No extra user for postgress Database created. Please do so yourself" +fi + +exit 0 |