You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

201 lines
5.0 KiB

package storage
var sqlTables = map[string]string{
"user": `CREATE TABLE IF NOT EXISTS user (
4 years ago
id VARCHAR(255) PRIMARY KEY,
username VARCHAR(255) NOT NULL UNIQUE,
nickname VARCHAR(255) DEFAULT '',
avatar VARCHAR(255) DEFAULT '',
4 years ago
email VARCHAR(255) UNIQUE NOT NULL,
role VARCHAR(20) NOT NULL,
last_seen_at DATETIME DEFAULT CURRENT_DATETIME,
is_diabled BOOL NOT NULL DEFAULT 'false',
created DATETIME NOT NULL,
updated DATETIME NOT NULL
);
CREATE INDEX IF NOT EXISTS user_username
ON user (username);
CREATE INDEX IF NOT EXISTS user_role
ON user (role);
CREATE INDEX IF NOT EXISTS user_email
ON user (email);`,
4 years ago
"user_profile": `CREATE TABLE IF NOT EXISTS user_profile (
4 years ago
id VARCHAR(255) PRIMARY KEY,
4 years ago
tagline VARCHAR(255),
cover VARCHAR(255),
location VARCHAR(255),
avail_for TEXT,
about TEXT,
website VARCHAR(255),
twitter VARCHAR(255),
github VARCHAR(255),
zhihu VARCHAR(255),
weibo VARCHAR(255),
facebook VARCHAR(255),
stackoverflow VARCHAR(255),
4 years ago
4 years ago
updated DATETIME
);`,
"sessions": `CREATE TABLE IF NOT EXISTS sessions (
sid VARCHAR(255) primary key,
4 years ago
user_id VARCHAR(255)
);
`,
4 years ago
"story": `CREATE TABLE IF NOT EXISTS story (
4 years ago
id VARCHAR(255) PRIMARY KEY,
4 years ago
type VARCHAR(1) NOT NULL,
4 years ago
creator VARCHAR(255) NOT NULL,
4 years ago
slug VARCHAR(64) DEFAULT '',
title VARCHAR(255) DEFAULT '',
md TEXT DEFAULT '',
4 years ago
url VARCHAR(255),
cover VARCHAR(255),
brief TEXT,
status tinyint NOT NULL,
created DATETIME NOT NULL,
updated DATETIME
);
4 years ago
CREATE INDEX IF NOT EXISTS story_type
ON story (type);
CREATE INDEX IF NOT EXISTS story_creator
ON story (creator);
CREATE INDEX IF NOT EXISTS story_created
ON story (created);
4 years ago
`,
4 years ago
"likes": `CREATE TABLE IF NOT EXISTS likes (
story_id VARCHAR(255),
4 years ago
story_type VARCHAR(1),
user_id VARCHAR(255),
4 years ago
created DATETIME NOT NULL
4 years ago
);
4 years ago
CREATE INDEX IF NOT EXISTS likes_userid
ON likes (user_id);
CREATE INDEX IF NOT EXISTS likes_storyid
ON likes (story_id);
4 years ago
`,
"likes_count": `CREATE TABLE IF NOT EXISTS likes_count (
story_id VARCHAR(255) PRIMARY KEY,
count INTEGER
);
`,
"follows": `CREATE TABLE IF NOT EXISTS follows (
user_id VARCHAR(255),
target_id VARCHAR(255),
4 years ago
target_type VARCHAR(1),
4 years ago
weight TINYINT DEFAULT 1,
created DATETIME NOT NULL
);
CREATE INDEX IF NOT EXISTS follows_userid
ON follows (user_id);
CREATE INDEX IF NOT EXISTS follows_targetid
ON follows (target_id);
`,
"follows_count": `CREATE TABLE IF NOT EXISTS follows_count (
target_id VARCHAR(255) PRIMARY KEY,
count INTEGER
);
`,
4 years ago
"tags": `CREATE TABLE IF NOT EXISTS tags (
4 years ago
id VARCHAR(255) PRIMARY KEY,
creator VARCHAR(255) NOT NULL,
title VARCHAR(255) NOT NULL,
4 years ago
name VARCHAR(255) NOT NULL,
icon VARCHAR(255),
cover VARCHAR(255),
md TEXT,
created DATETIME NOT NULL,
updated DATETIME
);
CREATE UNIQUE INDEX IF NOT EXISTS tags_name
ON tags (name);
CREATE INDEX IF NOT EXISTS tags_created
ON tags (created);
`,
4 years ago
"tags_using": `CREATE TABLE IF NOT EXISTS tags_using (
4 years ago
tag_id VARCHAR(255),
4 years ago
target_type VARCHAR(1),
target_id VARCHAR(255),
target_creator VARCHAR(255)
4 years ago
);
CREATE INDEX IF NOT EXISTS tags_using_tagid
ON tags_using (tag_id);
CREATE INDEX IF NOT EXISTS tags_using_targetid
ON tags_using (target_id);
4 years ago
CREATE INDEX IF NOT EXISTS tags_using_idtype
ON tags_using (tag_id,target_type);
4 years ago
`,
4 years ago
"comments": `CREATE TABLE IF NOT EXISTS comments (
id VARCHAR(255) PRIMARY KEY,
4 years ago
story_id VARCHAR(255),
4 years ago
creator VARCHAR(255),
4 years ago
MD TEXT,
created DATETIME NOT NULL,
updated DATETIME
);
4 years ago
CREATE INDEX IF NOT EXISTS comments_storyid
ON comments (story_id);
4 years ago
CREATE INDEX IF NOT EXISTS comments_creator
ON comments (creator);
`,
4 years ago
"comments_count": `CREATE TABLE IF NOT EXISTS comments_count (
story_id VARCHAR(255) PRIMARY KEY,
count INTEGER DEFAULT 0
);
`,
4 years ago
"bookmarks": `CREATE TABLE IF NOT EXISTS bookmarks (
4 years ago
user_id VARCHAR(255),
4 years ago
story_id VARCHAR(255),
created DATETIME
);
CREATE INDEX IF NOT EXISTS bookmarks_userid
ON bookmarks (user_id);
`,
4 years ago
"series_post": `CREATE TABLE IF NOT EXISTS series_post (
series_id VARCHAR(255),
post_id VARCHAR(255),
priority TINYINT
);
CREATE INDEX IF NOT EXISTS series_post_seriesid
ON series_post (series_id);
CREATE INDEX IF NOT EXISTS series_post_postid
ON series_post (post_id);
`,
"pin": `CREATE TABLE IF NOT EXISTS pin (
target_id VARCHAR(255),
story_id VARCHAR(255),
created DATETIME
);
CREATE INDEX IF NOT EXISTS pin_targetid
ON pin (target_id);
`,
4 years ago
"user_navbar": `CREATE TABLE IF NOT EXISTS user_navbar (
user_id VARCHAR(255),
label VARCHAR(20),
type TINYINT,
value VARCHAR(255),
weight TINYINT
);
CREATE INDEX IF NOT EXISTS user_navbar_userid
ON user_navbar (user_id);
`,
}