feat: 添加文章系列数据库表结构及迁移文件

This commit is contained in:
seahi committed 2026-08-06 12:14:13 +08:00
1 parent f72dd4df87
commit fe37e26e5f
2 files changed
+30 -1

No files matched your search

+14
View File
@@ -0,0 +1,14 @@
CREATE TABLE series (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE COLLATE NOCASE,
slug TEXT NOT NULL UNIQUE,
description TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE posts ADD COLUMN series_id INTEGER REFERENCES series(id) ON DELETE SET NULL;
ALTER TABLE posts ADD COLUMN series_weight INTEGER;
CREATE INDEX idx_posts_series_order ON posts(series_id, series_weight, published_at, id);
INSERT OR IGNORE INTO settings (key, value) VALUES ('alias.series', '系列');
+16 -1
View File
@@ -1,5 +1,6 @@
DROP TABLE IF EXISTS post_tags; DROP TABLE IF EXISTS post_tags;
DROP TABLE IF EXISTS posts; DROP TABLE IF EXISTS posts;
DROP TABLE IF EXISTS series;
DROP TABLE IF EXISTS tags; DROP TABLE IF EXISTS tags;
DROP TABLE IF EXISTS categories; DROP TABLE IF EXISTS categories;
DROP TABLE IF EXISTS pages; DROP TABLE IF EXISTS pages;
@@ -20,6 +21,14 @@ CREATE TABLE categories (
slug TEXT NOT NULL UNIQUE slug TEXT NOT NULL UNIQUE
); );
CREATE TABLE series (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE COLLATE NOCASE,
slug TEXT NOT NULL UNIQUE,
description TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE posts ( CREATE TABLE posts (
id INTEGER PRIMARY KEY AUTOINCREMENT, id INTEGER PRIMARY KEY AUTOINCREMENT,
slug TEXT NOT NULL UNIQUE, slug TEXT NOT NULL UNIQUE,
@@ -27,13 +36,18 @@ CREATE TABLE posts (
content TEXT NOT NULL, content TEXT NOT NULL,
author_id INTEGER NOT NULL, author_id INTEGER NOT NULL,
category_id INTEGER, category_id INTEGER,
series_id INTEGER,
series_weight INTEGER,
published_at DATETIME DEFAULT CURRENT_TIMESTAMP, published_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
cover TEXT, cover TEXT,
FOREIGN KEY (author_id) REFERENCES users(id), FOREIGN KEY (author_id) REFERENCES users(id),
FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE SET NULL FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE SET NULL,
FOREIGN KEY (series_id) REFERENCES series(id) ON DELETE SET NULL
); );
CREATE INDEX idx_posts_series_order ON posts(series_id, series_weight, published_at, id);
CREATE TABLE pages ( CREATE TABLE pages (
id INTEGER PRIMARY KEY AUTOINCREMENT, id INTEGER PRIMARY KEY AUTOINCREMENT,
slug TEXT NOT NULL UNIQUE, slug TEXT NOT NULL UNIQUE,
@@ -102,6 +116,7 @@ INSERT INTO settings (key, value) VALUES
('alias.post', '文章'), ('alias.post', '文章'),
('alias.category', '分类'), ('alias.category', '分类'),
('alias.tag', '标签'), ('alias.tag', '标签'),
('alias.series', '系列'),
('alias.page', '页面'), ('alias.page', '页面'),
('site.title', 'BlogFlare'), ('site.title', 'BlogFlare'),
('site.description', 'A high-performance blog powered by Cloudflare D1, R2, and KV.'), ('site.description', 'A high-performance blog powered by Cloudflare D1, R2, and KV.'),