123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- -- migration_history
- CREATE TABLE migration_history (
- version TEXT NOT NULL PRIMARY KEY,
- created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now'))
- );
- -- system_setting
- CREATE TABLE system_setting (
- name TEXT NOT NULL,
- value TEXT NOT NULL,
- description TEXT NOT NULL DEFAULT '',
- UNIQUE(name)
- );
- -- user
- CREATE TABLE user (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- updated_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- row_status TEXT NOT NULL CHECK (row_status IN ('NORMAL', 'ARCHIVED')) DEFAULT 'NORMAL',
- username TEXT NOT NULL UNIQUE,
- role TEXT NOT NULL CHECK (role IN ('HOST', 'ADMIN', 'USER')) DEFAULT 'USER',
- email TEXT NOT NULL DEFAULT '',
- nickname TEXT NOT NULL DEFAULT '',
- password_hash TEXT NOT NULL,
- avatar_url TEXT NOT NULL DEFAULT '',
- description TEXT NOT NULL DEFAULT ''
- );
- CREATE INDEX idx_user_username ON user (username);
- -- user_setting
- CREATE TABLE user_setting (
- user_id INTEGER NOT NULL,
- key TEXT NOT NULL,
- value TEXT NOT NULL,
- UNIQUE(user_id, key)
- );
- -- memo
- CREATE TABLE memo (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- uid TEXT NOT NULL UNIQUE,
- creator_id INTEGER NOT NULL,
- created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- updated_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- row_status TEXT NOT NULL CHECK (row_status IN ('NORMAL', 'ARCHIVED')) DEFAULT 'NORMAL',
- content TEXT NOT NULL DEFAULT '',
- visibility TEXT NOT NULL CHECK (visibility IN ('PUBLIC', 'PROTECTED', 'PRIVATE')) DEFAULT 'PRIVATE',
- tags TEXT NOT NULL DEFAULT '[]',
- payload TEXT NOT NULL DEFAULT '{}'
- );
- CREATE INDEX idx_memo_creator_id ON memo (creator_id);
- CREATE INDEX idx_memo_content ON memo (content);
- CREATE INDEX idx_memo_visibility ON memo (visibility);
- CREATE INDEX idx_memo_tags ON memo (tags);
- -- memo_organizer
- CREATE TABLE memo_organizer (
- memo_id INTEGER NOT NULL,
- user_id INTEGER NOT NULL,
- pinned INTEGER NOT NULL CHECK (pinned IN (0, 1)) DEFAULT 0,
- UNIQUE(memo_id, user_id)
- );
- -- memo_relation
- CREATE TABLE memo_relation (
- memo_id INTEGER NOT NULL,
- related_memo_id INTEGER NOT NULL,
- type TEXT NOT NULL,
- UNIQUE(memo_id, related_memo_id, type)
- );
- -- resource
- CREATE TABLE resource (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- uid TEXT NOT NULL UNIQUE,
- creator_id INTEGER NOT NULL,
- created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- updated_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- filename TEXT NOT NULL DEFAULT '',
- blob BLOB DEFAULT NULL,
- type TEXT NOT NULL DEFAULT '',
- size INTEGER NOT NULL DEFAULT 0,
- memo_id INTEGER,
- storage_type TEXT NOT NULL DEFAULT '',
- reference TEXT NOT NULL DEFAULT '',
- payload TEXT NOT NULL DEFAULT '{}'
- );
- CREATE INDEX idx_resource_creator_id ON resource (creator_id);
- CREATE INDEX idx_resource_memo_id ON resource (memo_id);
- -- activity
- CREATE TABLE activity (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- creator_id INTEGER NOT NULL,
- created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- type TEXT NOT NULL DEFAULT '',
- level TEXT NOT NULL CHECK (level IN ('INFO', 'WARN', 'ERROR')) DEFAULT 'INFO',
- payload TEXT NOT NULL DEFAULT '{}'
- );
- -- idp
- CREATE TABLE idp (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- name TEXT NOT NULL,
- type TEXT NOT NULL,
- identifier_filter TEXT NOT NULL DEFAULT '',
- config TEXT NOT NULL DEFAULT '{}'
- );
- -- inbox
- CREATE TABLE inbox (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- sender_id INTEGER NOT NULL,
- receiver_id INTEGER NOT NULL,
- status TEXT NOT NULL,
- message TEXT NOT NULL DEFAULT '{}'
- );
- -- webhook
- CREATE TABLE webhook (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- updated_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- row_status TEXT NOT NULL CHECK (row_status IN ('NORMAL', 'ARCHIVED')) DEFAULT 'NORMAL',
- creator_id INTEGER NOT NULL,
- name TEXT NOT NULL,
- url TEXT NOT NULL
- );
- CREATE INDEX idx_webhook_creator_id ON webhook (creator_id);
- -- reaction
- CREATE TABLE reaction (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- created_ts BIGINT NOT NULL DEFAULT (strftime('%s', 'now')),
- creator_id INTEGER NOT NULL,
- content_id TEXT NOT NULL,
- reaction_type TEXT NOT NULL,
- UNIQUE(creator_id, content_id, reaction_type)
- );
|