X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=db.sql;h=a9f03c694aa185c6055b7ab03db1d6c25e64233c;hb=5e26317ea435eaa5dd8d8fa7ccef5fd0e883b998;hp=d2f658e03f979a8b90ba7942aba685ad67203bc0;hpb=89dadd7b183137904770e9d40121263680f789de;p=gruntmaster-data.git diff --git a/db.sql b/db.sql index d2f658e..a9f03c6 100644 --- a/db.sql +++ b/db.sql @@ -1,4 +1,4 @@ -CREATE TABLE users ( +CREATE TABLE IF NOT EXISTS users ( id TEXT PRIMARY KEY, passphrase TEXT, -- NOT NULL, admin BOOLEAN NOT NULL DEFAULT FALSE, @@ -13,7 +13,7 @@ CREATE TABLE users ( since BIGINT DEFAULT CAST(EXTRACT(epoch from now()) AS bigint) ); -CREATE TABLE contests ( +CREATE TABLE IF NOT EXISTS contests ( id TEXT PRIMARY KEY, name TEXT NOT NULL, editorial TEXT, @@ -24,7 +24,7 @@ CREATE TABLE contests ( CONSTRAINT positive_duration CHECK (stop > start) ); -CREATE TABLE contest_status ( +CREATE TABLE IF NOT EXISTS contest_status ( contest TEXT NOT NULL REFERENCES contests ON DELETE CASCADE, owner TEXT NOT NULL REFERENCES users ON DELETE CASCADE, score INT NOT NULL, @@ -33,7 +33,7 @@ CREATE TABLE contest_status ( PRIMARY KEY (owner, contest) ); -CREATE TABLE problems ( +CREATE TABLE IF NOT EXISTS problems ( id TEXT PRIMARY KEY, author TEXT, writer TEXT, @@ -58,17 +58,17 @@ CREATE TABLE problems ( versource TEXT ); -CREATE TABLE contest_problems ( +CREATE TABLE IF NOT EXISTS contest_problems ( contest TEXT REFERENCES contests ON DELETE CASCADE, problem TEXT NOT NULL REFERENCES problems ON DELETE CASCADE, PRIMARY KEY (contest, problem) ); -CREATE TABLE jobs ( +CREATE TABLE IF NOT EXISTS jobs ( id SERIAL PRIMARY KEY, contest TEXT REFERENCES contests ON DELETE CASCADE, daemon TEXT, - date BIGINT NOT NULL, + date BIGINT NOT NULL DEFAULT CAST(EXTRACT(epoch from now()) AS bigint), errors TEXT, extension TEXT NOT NULL, format TEXT NOT NULL, @@ -82,7 +82,7 @@ CREATE TABLE jobs ( owner TEXT NOT NULL REFERENCES users ON DELETE CASCADE ); -CREATE TABLE problem_status ( +CREATE TABLE IF NOT EXISTS problem_status ( problem TEXT NOT NULL REFERENCES problems ON DELETE CASCADE, owner TEXT NOT NULL REFERENCES users ON DELETE CASCADE, job SERIAL NOT NULL REFERENCES jobs ON DELETE CASCADE, @@ -91,7 +91,7 @@ CREATE TABLE problem_status ( PRIMARY KEY (owner, problem) ); -CREATE TABLE opens ( +CREATE TABLE IF NOT EXISTS opens ( contest TEXT NOT NULL REFERENCES contests ON DELETE CASCADE, problem TEXT NOT NULL REFERENCES problems ON DELETE CASCADE, owner TEXT NOT NULL REFERENCES users ON DELETE CASCADE, @@ -99,7 +99,7 @@ CREATE TABLE opens ( PRIMARY KEY (contest, problem, owner) ); -CREATE TABLE limits ( +CREATE TABLE IF NOT EXISTS limits ( problem TEXT NOT NULL REFERENCES problems ON DELETE CASCADE, format TEXT NOT NULL, timeout REAL NOT NULL,