-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathsetup-db.sh
More file actions
executable file
·37 lines (32 loc) · 1.33 KB
/
setup-db.sh
File metadata and controls
executable file
·37 lines (32 loc) · 1.33 KB
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
#!/bin/bash
# Multiple databases script tweaked from https://github.com/mrts/docker-postgresql-multiple-databases
set -e
set -u
function create_database() {
local database=$1
echo " Creating database '$database'"
echo "SELECT 'CREATE DATABASE $database' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '$database')\gexec" | psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER"
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
GRANT ALL PRIVILEGES ON DATABASE $database TO "$POSTGRES_USER";
EOSQL
}
if [ -n "$POSTGRES_MULTIPLE_DATABASES" ]; then
echo "Multiple database creation requested: $POSTGRES_MULTIPLE_DATABASES"
for db in $(echo $POSTGRES_MULTIPLE_DATABASES | tr ',' ' '); do
create_database $db
done
echo "Multiple databases created"
fi
if [[ $POSTGRES_MULTIPLE_DATABASES == *"care_quality_dashboard"* ]]; then
cat /docker-entrypoint-initdb.d/schema.txt | psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname care_quality_dashboard
fi;
# Create "test" user if we're creating "test" database
if [[ $POSTGRES_MULTIPLE_DATABASES == *"test"* ]]; then
echo "Updating test database";
psql --username "$POSTGRES_USER" test <<-EOSQL
CREATE USER "test" WITH PASSWORD 'test';
GRANT ALL PRIVILEGES ON DATABASE test TO test;
ALTER DATABASE test OWNER TO test;
ALTER SCHEMA public OWNER TO test;
EOSQL
fi;