rin
Публичный Open-source lightweight git hosting.
003_pulls_releases_repo_settings.sql · 49 строк · 2.1 KB
Raw
1 ALTER TABLE repositories ADD COLUMN enable_issues INTEGER NOT NULL DEFAULT 1;
2 ALTER TABLE repositories ADD COLUMN enable_pulls INTEGER NOT NULL DEFAULT 1;
3 ALTER TABLE repositories ADD COLUMN enable_releases INTEGER NOT NULL DEFAULT 1;
4 ALTER TABLE repositories ADD COLUMN enable_activity INTEGER NOT NULL DEFAULT 1;
5
6 CREATE TABLE IF NOT EXISTS pull_requests (
7 id INTEGER PRIMARY KEY AUTOINCREMENT,
8 repo_id INTEGER NOT NULL REFERENCES repositories(id) ON DELETE CASCADE,
9 number INTEGER NOT NULL,
10 author_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
11 title TEXT NOT NULL,
12 body TEXT NOT NULL DEFAULT '',
13 base_branch TEXT NOT NULL,
14 head_branch TEXT NOT NULL,
15 status TEXT NOT NULL DEFAULT 'open',
16 merged_by_id INTEGER REFERENCES users(id),
17 merged_at DATETIME,
18 created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
19 updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
20 UNIQUE(repo_id, number)
21 );
22
23 CREATE INDEX IF NOT EXISTS idx_pulls_repo_id ON pull_requests(repo_id, status, number DESC);
24
25 CREATE TABLE IF NOT EXISTS pull_request_comments (
26 id INTEGER PRIMARY KEY AUTOINCREMENT,
27 pull_id INTEGER NOT NULL REFERENCES pull_requests(id) ON DELETE CASCADE,
28 author_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
29 body TEXT NOT NULL,
30 created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
31 );
32
33 CREATE INDEX IF NOT EXISTS idx_pull_comments_pull_id ON pull_request_comments(pull_id, created_at ASC);
34
35 CREATE TABLE IF NOT EXISTS releases (
36 id INTEGER PRIMARY KEY AUTOINCREMENT,
37 repo_id INTEGER NOT NULL REFERENCES repositories(id) ON DELETE CASCADE,
38 author_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
39 tag_name TEXT NOT NULL,
40 title TEXT NOT NULL,
41 body TEXT NOT NULL DEFAULT '',
42 is_draft INTEGER NOT NULL DEFAULT 0,
43 is_prerelease INTEGER NOT NULL DEFAULT 0,
44 created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
45 published_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
46 UNIQUE(repo_id, tag_name)
47 );
48
49 CREATE INDEX IF NOT EXISTS idx_releases_repo_id ON releases(repo_id, published_at DESC);
50