summaryrefslogtreecommitdiff
path: root/src/db/migrations/0000.sql
blob: bc4b3b9077754b21909325e5b6dbb54c5cc06f8b (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
BEGIN TRANSACTION;
SET search_path = public;

-- Migration Start

CREATE SCHEMA sys;

ALTER SCHEMA sys OWNER TO website;

CREATE TABLE sys.database_info (
	name TEXT DEFAULT ''::text NOT NULL,
	curr_revision INTEGER DEFAULT 0 NOT NULL
);

ALTER TABLE ONLY sys.database_info
	ADD CONSTRAINT database_info_pkey PRIMARY KEY (name);

ALTER TABLE sys.database_info OWNER TO website;

INSERT INTO sys.database_info
	(name, curr_revision) VALUES (current_database(), 0);

CREATE SCHEMA admin;

ALTER SCHEMA admin OWNER TO website;

CREATE SEQUENCE sys.request_log_id_seq
	START WITH 1
	INCREMENT BY 1
	NO MINVALUE
	NO MAXVALUE
	CACHE 1;

CREATE TYPE admin.request_log_method_type AS ENUM (
	'GET', 'HEAD', 'POST', 'PUT', 'DELETE',
	'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'
);

CREATE TABLE admin.request_log (
	id		INTEGER DEFAULT nextval('sys.request_log_id_seq'::regclass) NOT NULL,
	date	TIMESTAMP WITH TIME ZONE DEFAULT clock_timestamp() NOT NULL,
	ip		INET NOT NULL,
	method	admin.request_log_method_type NOT NULL,
	uri		TEXT NOT NULL
);

ALTER TABLE admin.request_log OWNER TO website;

ALTER TABLE ONLY admin.request_log
	ADD CONSTRAINT request_log_pkey PRIMARY KEY (id);

CREATE TABLE admin.banned (
	ip      INET NOT NULL,
	date    TIMESTAMP WITH TIME ZONE DEFAULT clock_timestamp() NOT NULL,
	reason  TEXT DEFAULT 'unspecified'::text NOT NULL
);

ALTER TABLE admin.banned OWNER TO website;

ALTER TABLE ONLY admin.banned
	ADD CONSTRAINT banned_pkey PRIMARY KEY (ip);

CREATE SEQUENCE sys.comment_id_seq
	START WITH 1
	INCREMENT BY 1
	NO MINVALUE
	NO MAXVALUE
	CACHE 1;

CREATE TABLE admin.comment (
	id      INTEGER DEFAULT nextval('sys.comment_id_seq'::regclass) NOT NULL,
	author  TEXT NOT NULL,
	content TEXT NOT NULL,
	page    TEXT NOT NULL,
	created TIMESTAMP WITH TIME ZONE DEFAULT clock_timestamp() NOT NULL,
	ip      INET NOT NULL,
	vulgar  BOOLEAN DEFAULT FALSE
);

ALTER TABLE admin.comment OWNER TO website;

ALTER TABLE ONLY admin.comment
	ADD CONSTRAINT comment_pkey PRIMARY KEY (id);
-- Migration End;

-- Set Current Revision
UPDATE sys.database_info SET curr_revision = 1 WHERE name = current_database();

COMMIT TRANSACTION;