aboutsummaryrefslogtreecommitdiff
path: root/debian/db/install/pgsql
blob: 67b030c087f658b95cdd60da08e9b9026947fcd8 (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
#!/bin/bash
set -eu
merchantdb_secretconf=/etc/taler/secrets/merchant-db.secret.conf
merchantdb_overrideconf=/etc/taler/conf.d/merchant-debconf.conf
# get database settings from dbconfig-common and configure
# for ADMINISTRATIVE access
if [ -f /etc/dbconfig-common/taler-merchant.conf ]; then
    . /etc/dbconfig-common/taler-merchant.conf
    case "$dbc_dbtype" in
        pgsql)
            echo -e "# Config file auto-generated by Debian.\n[merchant]\nDB=postgres\n\n" > \
              $merchantdb_overrideconf
            echo -e "[merchantdb-postgres]\nCONFIG=postgres:///${dbc_dbname}\n\n" > \
              $merchantdb_secretconf
            ;;
        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
# get database settings from dbconfig-common and configure
# for service access!
if [ -f /etc/dbconfig-common/taler-merchant.conf ]; then
    . /etc/dbconfig-common/taler-merchant.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"

            echo -e "[merchantdb-postgres]\nCONFIG=postgres://${dbc_dbuser}:${dbc_dbpass}@${dbc_dbserver}/${dbc_dbname}\n\n" > \
              $merchantdb_secretconf
            echo -e "[merchant]\nDB=postgres\n\n" > \
              $merchantdb_overrideconf
            ;;
        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 taler-merchant-dbinit -c /etc/taler/taler.conf