chore: sync local updates

This commit is contained in:
2026-05-16 19:03:34 +08:00
parent acba445550
commit 42100c2d0a
102 changed files with 4007 additions and 1477 deletions

View File

@@ -0,0 +1,78 @@
-- 萌芽主页站点数据SQLite
PRAGMA foreign_keys = ON;
-- 基本个人信息
CREATE TABLE IF NOT EXISTS profile (
id INTEGER PRIMARY KEY CHECK (id = 1),
favicon TEXT,
nickname TEXT NOT NULL DEFAULT '',
avatar TEXT,
introduction TEXT,
footer TEXT,
site TEXT,
homepage TEXT
);
-- 项目列表
CREATE TABLE IF NOT EXISTS project (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sort_order INTEGER NOT NULL DEFAULT 0,
title TEXT NOT NULL,
description TEXT,
link TEXT,
icon TEXT,
is_admin INTEGER NOT NULL DEFAULT 0 CHECK (is_admin IN (0, 1)),
is_show INTEGER NOT NULL DEFAULT 1 CHECK (is_show IN (0, 1)),
is_develop INTEGER NOT NULL DEFAULT 0 CHECK (is_develop IN (0, 1))
);
-- 项目分类 / 业务标签
CREATE TABLE IF NOT EXISTS project_tag (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_id INTEGER NOT NULL REFERENCES project (id) ON DELETE CASCADE,
sort_order INTEGER NOT NULL DEFAULT 0,
tag TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_project_tag_project ON project_tag (project_id, sort_order);
-- 项目技术栈标签(与 project_tag 分开维护)
CREATE TABLE IF NOT EXISTS project_tech_tag (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_id INTEGER NOT NULL REFERENCES project (id) ON DELETE CASCADE,
sort_order INTEGER NOT NULL DEFAULT 0,
tag TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_project_tech_tag_project ON project_tech_tag (project_id, sort_order);
-- 联系方式
CREATE TABLE IF NOT EXISTS contact (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sort_order INTEGER NOT NULL DEFAULT 0,
type TEXT NOT NULL,
label TEXT,
value TEXT,
link TEXT,
icon TEXT,
is_show INTEGER NOT NULL DEFAULT 1 CHECK (is_show IN (0, 1))
);
-- 技术栈分类
CREATE TABLE IF NOT EXISTS techstack_section (
id INTEGER PRIMARY KEY CHECK (id = 1),
title TEXT NOT NULL DEFAULT '技术栈'
);
-- 技术栈项
CREATE TABLE IF NOT EXISTS techstack_item (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sort_order INTEGER NOT NULL DEFAULT 0,
name TEXT NOT NULL,
link TEXT,
svg TEXT,
color TEXT,
is_show INTEGER NOT NULL DEFAULT 1 CHECK (is_show IN (0, 1))
);
CREATE INDEX IF NOT EXISTS idx_techstack_item_order ON techstack_item (sort_order, id);