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.

290 lines
7.7 KiB

package storage
var sqlTables = map[string]string{
"user": `CREATE TABLE IF NOT EXISTS user (
4 years ago
id VARCHAR(255) PRIMARY KEY,
type VARCHAR(1) NOT NULL,
username VARCHAR(255) NOT NULL UNIQUE,
nickname VARCHAR(255) NOT NULL,
avatar VARCHAR(255) DEFAULT '',
email VARCHAR(255) DEFAULT '',
role VARCHAR(20) DEFAULT '',
last_seen_at DATETIME DEFAULT CURRENT_DATETIME,
4 years ago
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
4 years ago
);`,
4 years ago
4 years ago
"user_secret": `CREATE TABLE IF NOT EXISTS user_secret (
user_id VARCHAR(255) primary key,
secret VARCHAR(255),
created DATETIME
);
CREATE UNIQUE INDEX IF NOT EXISTS us_secret
ON user_secret (secret);
`,
"sessions": `CREATE TABLE IF NOT EXISTS sessions (
sid VARCHAR(255) primary key,
4 years ago
user_id VARCHAR(255)
);
`,
4 years ago
"org_member": `CREATE TABLE IF NOT EXISTS org_member (
org_id VARCHAR(255),
user_id VARCHAR(255),
role VARCHAR(20) NOT NULL,
created DATETIME NOT NULL
);
CREATE INDEX IF NOT EXISTS orgm_orgid
ON org_member (org_id);
CREATE INDEX IF NOT EXISTS orgm_userid
ON org_member (user_id);
`,
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
owner VARCHAR(255) DEFAULT '',
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,
4 years ago
views INTEGER DEFAULT 0,
4 years ago
likes INTEGER DEFAULT 0,
4 years ago
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);
4 years ago
CREATE INDEX IF NOT EXISTS story_owner
ON story (owner);
4 years ago
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),
4 years ago
target_creator VARCHAR(255),
4 years ago
target_owner VARCHAR(255),
4 years ago
target_created DATETIME
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_creator
ON tags_using (target_creator);
CREATE INDEX IF NOT EXISTS tags_using_owner
ON tags_using (target_owner);
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 (
id INTEGER PRIMARY KEY AUTOINCREMENT,
4 years ago
user_id VARCHAR(255),
label VARCHAR(20),
type TINYINT,
value VARCHAR(255),
4 years ago
weight TINYINT DEFAULT 0
4 years ago
);
CREATE INDEX IF NOT EXISTS user_navbar_userid
ON user_navbar (user_id);
`,
4 years ago
"navbar": `CREATE TABLE IF NOT EXISTS navbar (
id INTEGER PRIMARY KEY AUTOINCREMENT,
label VARCHAR(20),
icon VARCHAR(40),
value VARCHAR(255),
weight TINYINT DEFAULT 0
);
`,
4 years ago
"home_sidebar": `CREATE TABLE IF NOT EXISTS home_sidebar (
id INTEGER PRIMARY KEY AUTOINCREMENT,
tag_name VARCHAR(255),
sort VARCHAR(20),
display_count TINYINT,
weight TINYINT DEFAULT 0
);`,
4 years ago
"user_notification": `CREATE TABLE IF NOT EXISTS user_notification (
user_id VARCHAR(255),
operator_id VARCHAR(255),
notifiable_type TINYINT,
notifiable_id VARCHAR(255),
read BOOL DEFAULT false,
created DATETIME NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS user_notification_userid_notype_noid
ON user_notification (user_id,operator_id,notifiable_type,notifiable_id);
CREATE INDEX IF NOT EXISTS user_notification_created
ON user_notification (created)
`,
"org_notification": `CREATE TABLE IF NOT EXISTS org_notification (
user_id VARCHAR(255),
operator_id VARCHAR(255),
notifiable_type TINYINT,
notifiable_id VARCHAR(255),
read BOOL DEFAULT false,
created DATETIME NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS org_notification_userid_notype_noid
ON org_notification (user_id,operator_id,notifiable_type,notifiable_id);
CREATE INDEX IF NOT EXISTS user_notification_created
ON org_notification (created)
`,
"config": `CREATE TABLE IF NOT EXISTS config (
id INTEGER NOT NULL,
data TEXT,
updated DATETIME
);`,
"mail_code": `CREATE TABLE IF NOT EXISTS mail_code (
code VARCHAR(255) PRIMARY KEY,
mail VARCHAR(255),
created DATETIME
);`,
}