1
1
#! /bin/bash
2
2
3
- # POSTGRES_USER and DB_NAME must be provided as a env on docker compose
3
+ # POSTGRES_USER, DB_USERNAME and DB_NAME must be provided as a env on docker compose
4
4
5
5
set -e
6
6
@@ -9,24 +9,31 @@ GREEN='\033[0;32m'
9
9
RED=' \033[0;31m'
10
10
ENDC=' \033[0m'
11
11
12
+
12
13
echo -e " ${GREEN} Waiting for PostgreSQL to start...${ENDC} \n"
13
14
until pg_isready -U $POSTGRES_USER ; do
14
15
echo -e " ${RED} Not ready yet...${ENDC} \n"
15
16
sleep 2
16
17
done
17
18
19
+ echo -e " ${GREEN} Creating new user ${DB_USERNAME} ...${ENDC} \n"
20
+ psql -U $POSTGRES_USER -c " CREATE DATABASE $DB_USERNAME ;"
21
+ psql -U $POSTGRES_USER -c " CREATE USER $DB_USERNAME WITH LOGIN PASSWORD '$DB_PASSWORD ' CREATEDB;"
22
+
18
23
if [ ! $( psql -U $POSTGRES_USER -tc " SELECT 1 FROM pg_database WHERE datname='${DB_NAME} ';" ) ]; then
19
- echo -e " ${GREEN} Creating ${DB_NAME} database...${ENDC} "
20
- createdb -U $POSTGRES_USER $DB_NAME
24
+ echo -e " ${GREEN} Creating ${DB_NAME} database...${ENDC} \n"
25
+ psql -U $DB_USERNAME -c " CREATE DATABASE $DB_NAME OWNER $DB_USERNAME ;"
26
+ psql -U $POSTGRES_USER -c " GRANT CONNECT ON DATABASE $DB_NAME TO $DB_USERNAME ;"
27
+ psql -U $POSTGRES_USER -c " GRANT SELECT, UPDATE, INSERT, DELETE, TRIGGER ON ALL TABLES IN SCHEMA public TO $DB_USERNAME ;"
21
28
fi
22
29
23
30
echo -e " ${GREEN} Setting up tables...${ENDC} \n"
24
31
25
- psql -U $POSTGRES_USER -d $DB_NAME -c "
32
+ psql -U $DB_USERNAME -d $DB_NAME -c "
26
33
CREATE EXTENSION IF NOT EXISTS \" uuid-ossp\" ;
27
34
"
28
35
29
- psql -U $POSTGRES_USER -d $DB_NAME -c "
36
+ psql -U $DB_USERNAME -d $DB_NAME -c "
30
37
CREATE TABLE IF NOT EXISTS backends (
31
38
backend_name VARCHAR(30) NOT NULL PRIMARY KEY,
32
39
id uuid NOT NULL DEFAULT gen_random_uuid(),
@@ -35,7 +42,7 @@ CREATE TABLE IF NOT EXISTS backends (
35
42
);
36
43
"
37
44
38
- psql -U $POSTGRES_USER -d $DB_NAME -c "
45
+ psql -U $DB_USERNAME -d $DB_NAME -c "
39
46
CREATE TABLE IF NOT EXISTS jobs (
40
47
id uuid NOT NULL PRIMARY KEY,
41
48
pointer serial NOT NULL,
@@ -49,7 +56,7 @@ CREATE TABLE IF NOT EXISTS jobs (
49
56
);
50
57
"
51
58
52
- psql -U $POSTGRES_USER -d $DB_NAME -c "
59
+ psql -U $DB_USERNAME -d $DB_NAME -c "
53
60
CREATE TABLE IF NOT EXISTS result_types (
54
61
id uuid NOT NULL PRIMARY KEY DEFAULT gen_random_uuid(),
55
62
job_id uuid NOT NULL REFERENCES jobs(id) ON DELETE CASCADE,
@@ -59,7 +66,7 @@ CREATE TABLE IF NOT EXISTS result_types (
59
66
);
60
67
"
61
68
62
- psql -U $POSTGRES_USER -d $DB_NAME -c "
69
+ psql -U $DB_USERNAME -d $DB_NAME -c "
63
70
CREATE TABLE IF NOT EXISTS results (
64
71
id uuid NOT NULL PRIMARY KEY DEFAULT gen_random_uuid(),
65
72
job_id uuid NOT NULL REFERENCES jobs(id) ON DELETE CASCADE,
@@ -69,7 +76,7 @@ CREATE TABLE IF NOT EXISTS results (
69
76
);
70
77
"
71
78
72
- psql -U $POSTGRES_USER -d $DB_NAME -c "
79
+ psql -U $DB_USERNAME -d $DB_NAME -c "
73
80
COMMENT ON COLUMN backends.plugin is 'The name of the python plugin used for this specific backend';
74
81
COMMENT ON COLUMN backends.pointer is 'The pointer holds the order a value was inserted. This is useful for getting data using cursors.';
75
82
COMMENT ON COLUMN jobs.qasm is 'The path of a .qasm file';
@@ -84,4 +91,4 @@ COMMENT ON COLUMN results.expval is 'When results_types.expval is TRUE, the resu
84
91
"
85
92
86
93
87
- echo -e " ${GREEN} Finished SETUP${ENDC} "
94
+ echo -e " ${GREEN} Finished SETUP${ENDC} \n "
0 commit comments