comparison schema/install-db.sh @ 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
children 946baea3d280
comparison
equal deleted inserted replaced
241:3b688fe04c39 244:4ebb791b8278
1 #!/bin/bash
2 # Author(s):
3 # Sascha Wilde <wilde@intevation.de>
4
5 ME=`basename "$0"`
6 BASEDIR=`dirname "$0"`
7
8 usage()
9 {
10 cat <<EOF
11 $ME [OPION]...
12
13 Options:
14 -d, --db=NAME connect to the database NAME
15 -p, --port=PORT connect do the postgresql cluster at PORT
16 -D, --demo install demo accounts and data
17 --help display this help and exit
18
19 EOF
20 }
21
22 fatal()
23 {
24 echo >&2 "$1"
25 exit 23
26 }
27
28
29 # Defaults:
30
31 db=gemma
32 port=5432
33 demo=0
34
35
36 # Parse options:
37
38 OPTS=`getopt \
39 -l help,demo,db:,port: \
40 -o Dd:p: -n "$ME" -- "$@"`
41 [ $? -eq 0 ] || { usage ; exit 1 ; }
42
43 eval set -- "$OPTS"
44
45 while true ; do
46 case "$1" in
47 --db|-d)
48 db="$2"
49 shift 2
50 ;;
51 --port|-p)
52 port="$2"
53 shift 2
54 ;;
55 --demo|-D)
56 demo=1
57 shift 1
58 ;;
59 --help)
60 { usage ; exit 0 ; }
61 ;;
62 --)
63 shift
64 break
65 ;;
66 esac
67 done
68
69
70 # Main ------------------------------------------------------------
71
72 psql -p "$port" -f "$BASEDIR/roles.sql"
73 createdb -p "$port" "$db"
74 psql -p "$port" -f "$BASEDIR/gemma.sql" \
75 -f "$BASEDIR/auth.sql" -f "$BASEDIR/manage_users.sql" -d "$db"
76 if [[ $demo -eq 1 ]] ; then
77 psql -p "$port" -f "$BASEDIR/demo-data/responsibility_areas.sql" \
78 -d "$db"
79 psql -p "$port" -f "$BASEDIR/demo-data/roles.sql" \
80 -f "$BASEDIR/demo-data/users.sql" -d "$db"
81 fi