feat: 初始化慧遇书院官网一期
This commit is contained in:
52
server/database/migrations/001_initial.sql
Normal file
52
server/database/migrations/001_initial.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
CREATE TABLE IF NOT EXISTS admin_users (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
username TEXT NOT NULL UNIQUE,
|
||||
password_hash TEXT NOT NULL,
|
||||
display_name TEXT NOT NULL,
|
||||
status TEXT NOT NULL DEFAULT 'active' CHECK (status IN ('active', 'disabled')),
|
||||
failed_login_count INTEGER NOT NULL DEFAULT 0,
|
||||
locked_until TEXT,
|
||||
last_login_at TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS site_documents (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
document_key TEXT NOT NULL UNIQUE,
|
||||
draft_json TEXT NOT NULL,
|
||||
published_json TEXT NOT NULL,
|
||||
updated_by INTEGER,
|
||||
updated_at TEXT NOT NULL,
|
||||
published_at TEXT,
|
||||
FOREIGN KEY (updated_by) REFERENCES admin_users(id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS revisions (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
entity_type TEXT NOT NULL,
|
||||
entity_key TEXT NOT NULL,
|
||||
version INTEGER NOT NULL,
|
||||
snapshot_json TEXT NOT NULL,
|
||||
operator_id INTEGER,
|
||||
action TEXT NOT NULL,
|
||||
comment TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
FOREIGN KEY (operator_id) REFERENCES admin_users(id),
|
||||
UNIQUE(entity_type, entity_key, version)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS audit_logs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
operator_id INTEGER,
|
||||
action TEXT NOT NULL,
|
||||
entity_type TEXT NOT NULL,
|
||||
entity_key TEXT,
|
||||
ip_address TEXT,
|
||||
metadata_json TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL,
|
||||
FOREIGN KEY (operator_id) REFERENCES admin_users(id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_revisions_entity ON revisions(entity_type, entity_key, version DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_audit_created_at ON audit_logs(created_at DESC);
|
||||
Reference in New Issue
Block a user