summaryrefslogtreecommitdiff
path: root/debian/db/install/pgsql
blob: 81f0a0ee679190a92da908bedbc8fa0fda05d7eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/sh

set -eu

conf_anastasis_db=/etc/taler/secrets/anastasis-db.secret.conf
conf_override=/etc/taler/override.conf

# get database settings from dbconfig-common and configure
# for ADMINISTRATIVE access
if [ -f /etc/dbconfig-common/anastasis.conf ]; then
    . /etc/dbconfig-common/anastasis.conf
    case "$dbc_dbtype" in
        pgsql)
            anastasis-config \
                         -c $conf_anastasis_db \
                         -s "stasis-postgres" \
                         -o "CONFIG" \
                         -V "postgres:///$dbc_dbname"
            anastasis-config \
                         -c $conf_override \
                         -s "anastasis" \
                         -o "DB" \
                         -V "postgres"
            ;;
        sqlite3)
            # Later: use something like:
            # sqlite:///$DATA_DIR/merchant.db
            # But for now, sqlite is unsupported:
            echo "Unsupported database type $dbc_type."
            exit 1
            ;;
        "")
            ;;
        *)
            echo "Unsupported database type $dbc_type."
            exit 1
            ;;
    esac
fi

# Run database initialization logic
sudo -u postgres anastasis-dbinit -c /etc/anastasis.conf


# get database settings from dbconfig-common and configure
# for service access!
if [ -f /etc/dbconfig-common/anastasis.conf ]; then
    . /etc/dbconfig-common/anastasis.conf
    case "$dbc_dbtype" in
        pgsql)
            echo "GRANT INSERT, SELECT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO \"$dbc_dbuser\";" \
                | sudo -u postgres psql "postgres:///$dbc_dbname"
            echo "GRANT SELECT, UPDATE ON ALL SEQUENCES IN SCHEMA public TO \"$dbc_dbuser\";" \
            | sudo -u postgres psql "postgres:///$dbc_dbname"

            anastasis-config \
                         -c $conf_anastasis_db \
                         -s "stasis-postgres" \
                         -o "CONFIG" \
                         -V "postgres://$dbc_dbuser:$dbc_dbpass@$dbc_dbserver/$dbc_dbname"
            anastasis-config \
                         -c $conf_override \
                         -s "anastasis" \
                         -o "DB" \
                         -V "postgres"
            ;;
        sqlite3)
            # Later: use something like:
            # sqlite:///$DATA_DIR/merchant.db
            # But for now, sqlite is unsupported:
            echo "Unsupported database type $dbc_type."
            exit 1
            ;;
        "")
            ;;
        *)
            echo "Unsupported database type $dbc_type."
            exit 1
            ;;
    esac
fi