-- Initial setup of PostgreSQL database
CREATE USER zonemaster WITH PASSWORD 'zonemaster';
CREATE DATABASE zonemaster WITH ENCODING 'UTF8';
\c zonemaster
CREATE TABLE test_results (
id serial primary key,
hash_id VARCHAR(16) DEFAULT substring(md5(random()::text || clock_timestamp()::text) from 1 for 16) NOT NULL,
batch_id integer,
creation_time timestamp without time zone DEFAULT NOW() NOT NULL,
test_start_time timestamp without time zone,
test_end_time timestamp without time zone,
priority integer DEFAULT 10,
progress integer DEFAULT 0,
params_deterministic_hash varchar(32),
params json NOT NULL,
results json
);
CREATE TABLE batch_jobs (
id serial PRIMARY KEY,
username varchar(50) NOT NULL,
creation_time timestamp without time zone NOT NULL DEFAULT NOW()
);
CREATE TABLE users (
id serial PRIMARY KEY,
user_info JSON
);
GRANT SELECT,UPDATE,INSERT ON test_results, batch_jobs, users TO zonemaster;
GRANT USAGE ON test_results_id_seq, batch_jobs_id_seq, users_id_seq TO zonemaster;