Mercurial > gemma
view schema/install-db.sh @ 315:3ef0521609f5
Limit is not needed when fetching an email for a user.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 02 Aug 2018 10:03:54 +0200 |
parents | dfb989088158 |
children | ac760b0f22a9 |
line wrap: on
line source
#!/bin/bash # Author(s): # Sascha Wilde <wilde@intevation.de> ME=`basename "$0"` BASEDIR=`dirname "$0"` usage() { cat <<EOF $ME [OPTION]... Options: -d, --db=NAME create the database NAME. Default: "gemma" -p, --port=PORT connect do the postgresql cluster at PORT. Default is the postgresql standard port 5432 -D, --demo also install demo accounts and data --drop drop database and all roles --help display this help and exit EOF } fatal() { echo >&2 "$1" exit 23 } # Defaults: db=gemma port=5432 demo=0 drop=0 # Parse options: OPTS=`getopt \ -l help,demo,db:,port:,drop \ -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 ;; --drop) drop=1 shift 1 ;; --help) { usage ; exit 0 ; } ;; --) shift break ;; esac done # Main ------------------------------------------------------------ if [[ drop -eq 0 ]] ; then # Default operation: create schema psql -q -p "$port" -f "$BASEDIR/roles.sql" createdb -p "$port" "$db" psql -qt -p "$port" -d "$db" \ -c "SET client_min_messages TO WARNING;" \ -f "$BASEDIR/gemma.sql" \ -f "$BASEDIR/manage_users.sql" \ -f "$BASEDIR/auth.sql" if [[ $demo -eq 1 ]] ; then psql -q -p "$port" -f "$BASEDIR/demo-data/responsibility_areas.sql" \ -d "$db" psql -q -p "$port" -f "$BASEDIR/demo-data/roles.sql" \ -f "$BASEDIR/demo-data/users.sql" -d "$db" fi else # Evil mode: drop everything gemma echo "Really drop database '$db' and alle gemma roles? [type 'yes']: " read a if [[ $a == "yes" ]] ; then dropdb -p "$port" "$db" for r in `psql -p $port -t -c '\du' | awk -F '|' \ '$1 "." $3 ~ /waterway_user|waterway_admin|sys_admin/ \ {print $1}'` do dropuser -p "$port" "$r" done else echo "No harm done." fi fi