Mercurial > gemma
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 |