> ## Documentation Index
> Fetch the complete documentation index at: https://blogloom.changlu.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# 数据库结构

> 数据库脚本、初始化与增量升级。

BlogLoom 使用 MySQL 持久化内容与日志数据，数据库脚本统一放在 `sql/` 目录，初始化与升级都通过增量脚本完成。

## 脚本布局

```text theme={null}
sql/
├── increment/          # 待执行增量 SQL，按版本分目录
│   └── 1.0/            #   1.0 版本，按时间戳命名
│       ├── 20260915000000_v1.0.x.sql   # 基线（含建库建表）
│       └── 2026..._v1.0.x.sql
└── local/              # 已执行 SQL 的记录（本机，不入库）
```

* 文件名格式：`<时间戳>_v<版本>.x.sql`，脚本按文件名排序执行。
* `sql/increment/1.0/` 中最早的基线脚本包含完整的建表语句。
* `sql/local/` 是扁平执行记录，已加入 `.gitignore`。

## 初始化与升级

创建数据库后，配置 `bin/local/deploy.conf` 并执行：

```bash theme={null}
bin/local/upgrate-sql.sh --dry-run   # 预览待执行 SQL
bin/local/upgrate-sql.sh             # 执行并记录
```

详见[初始化数据库](/v1/zh/deploy/database)。

## 执行规则

* 已记录在 `sql/local/` 的脚本会被跳过，可安全重复执行。
* 不同版本、不同变更不能使用相同文件名（记录目录是扁平的）。
* 新增增量 SQL 使用当前开发时间；补录历史变更使用对应历史时间，保证时间戳顺序正确。

## 主要数据对象

* 文章、分类、标签、专栏及其关联表
* 动态、评论与点赞
* 站点配置、友链与关于页
* 用户、角色与日志

## 注意事项

* 结构或初始数据变化时，新增增量 SQL，而不是修改已执行的脚本。
* 修改初始化数据后，已运行环境需同步数据库并按需清理缓存。

## 下一步

* [数据库集成](/v1/zh/integration/data/mysql)
* [安装部署](/v1/zh/deploy/database)
