更新指南

June 2, 2026 · View on GitHub

除非有特殊说明,项目升级升级不对数据库文件进行破坏性修改,数据库可以继续使用。

数据库变化情况可以查看 数据库更新记录

不同版本升级方式

Node.js

Relase 下载最新代码,替换原有代码即可,数据库文件无需修改。

需要更新的文件包括 package.jsonpnpm-lock.ymlsrcprismapublic 文件夹下的所有文件。

升级完成后,请执行 pnpm install 安装依赖包。

pnpm install
pnpm build
pnpm start

Go

Relase 下载最新二进制文件,替换原有二进制即可,数据库文件无需修改。

Worker

正常情况从 Relase 下载最新代码,替换原有代码即可。

需要升级的文件包括 package.jsonpnpm-lock.ymlsrcschemaspublic 文件夹下的所有文件。

升级完成后运行下面的命令推送到 Worker

pnpm wrangler login
pnpm run deploy

如果升级后发现问题,请检查数据库是否添加了新的表。如果添加,请前往 Cloudflare Worker 的 D1 数据库控制台,执行新添加的 SQL 语句。SQL 语句在 worker/schemas/comment.sql 文件中。

D1

数据库更新记录

v1.3.0 版本

添加了 Settings 表,SQL 语句如下:

CREATE TABLE IF NOT EXISTS Settings (
    key TEXT PRIMARY KEY,
    value TEXT NOT NULL,
    updated_at TEXT DEFAULT (datetime('now'))
);

v1.4.0 版本

Node.js 重构

Node.js 后端从 Koa + Prisma 迁移至 Hono + Drizzle ORM

Prisma 下 model Setting(单数)对应表名 Setting,为了与其他版本保持一致,本次重构将表名称改成 Settings

Node.js 版本更新前需要运行迁移脚本,请执行下面的命令

node scripts/migrate-settings-table.js

新增邮箱认证功能

添加了 EmailVerification 表,SQL 语句如下:

CREATE TABLE IF NOT EXISTS EmailVerification (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    email TEXT NOT NULL,
    token TEXT NOT NULL UNIQUE,
    expires_at TEXT NOT NULL,
    verified INTEGER NOT NULL DEFAULT 0,
    post_slug TEXT,
    post_title TEXT,
    created_at TEXT NOT NULL DEFAULT (datetime('now')),
    verified_at TEXT
);
CREATE INDEX IF NOT EXISTS idx_ev_email ON EmailVerification(email);
CREATE INDEX IF NOT EXISTS idx_ev_token ON EmailVerification(token);