changeset 244:4ebb791b8278

Added simple script to install db schema.
author Sascha Wilde <wilde@intevation.de>
date Thu, 26 Jul 2018 18:51:24 +0200
parents 3b688fe04c39
children 9f6d29f8ac2b
files schema/install-db.sh
diffstat 1 files changed, 81 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schema/install-db.sh	Thu Jul 26 18:51:24 2018 +0200
@@ -0,0 +1,81 @@
+#!/bin/bash
+# Author(s):
+# Sascha Wilde <wilde@intevation.de>
+
+ME=`basename "$0"`
+BASEDIR=`dirname "$0"`
+
+usage()
+{
+  cat <<EOF
+$ME [OPION]...
+
+Options:
+  -d, --db=NAME    connect to the database NAME
+  -p, --port=PORT  connect do the postgresql cluster at PORT
+  -D, --demo       install demo accounts and data
+      --help       display this help and exit
+
+EOF
+}
+
+fatal()
+{
+  echo >&2 "$1"
+  exit 23
+}
+
+
+# Defaults:
+
+db=gemma
+port=5432
+demo=0
+
+
+# Parse options:
+
+OPTS=`getopt \
+      -l help,demo,db:,port: \
+      -o Dd:p: -n "$ME" -- "$@"`
+[ $? -eq 0 ] || { usage ; exit 1 ; }
+
+eval set -- "$OPTS"
+
+while true ; do
+  case "$1" in
+    --db|-d)
+      db="$2"
+      shift 2
+      ;;
+    --port|-p)
+      port="$2"
+      shift 2
+      ;;
+    --demo|-D)
+      demo=1
+      shift 1
+      ;;
+    --help)
+      { usage ; exit 0 ; }
+      ;;
+    --)
+      shift
+      break
+      ;;
+  esac
+done
+
+
+# Main ------------------------------------------------------------
+
+psql -p "$port" -f "$BASEDIR/roles.sql"
+createdb -p "$port" "$db"
+psql -p "$port" -f "$BASEDIR/gemma.sql" \
+     -f "$BASEDIR/auth.sql" -f "$BASEDIR/manage_users.sql" -d "$db"
+if [[ $demo -eq 1 ]] ; then
+  psql -p "$port" -f "$BASEDIR/demo-data/responsibility_areas.sql" \
+       -d "$db" 
+  psql -p "$port" -f "$BASEDIR/demo-data/roles.sql" \
+       -f "$BASEDIR/demo-data/users.sql" -d "$db" 
+fi