📖 updates_include 表
更新包含目录表,定义数据库更新系统需要扫描的 SQL 文件目录。
📋 表概述
updates_include 表是 AzerothCore 数据库版本管理系统的配置表。它定义了数据库更新器(DBUpdater)需要扫描哪些目录下的 SQL 更新文件。支持通过 $ 符号引用源码相对路径,并可为每个目录指定状态过滤。
- 主键:(path)
- 引擎:InnoDB
- 关联表:updates
📊 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
path | varchar(200) | (无) | SQL 更新文件目录路径,$ 表示源码根目录 |
state | enum | 'RELEASED' | 该目录中更新的状态:RELEASED/ARCHIVED/CUSTOM/PENDING |
🔍 重要字段详解
path — 扫描路径
指定需要扫描 SQL 更新文件的目录路径。以 $ 开头的路径表示相对于源码(source)目录的相对路径,如 $/sql/characters/base。DBUpdater 启动时会遍历这些目录下的所有 .sql 文件。
state — 状态过滤
限定该目录下 SQL 文件的预期状态。DBUpdater 仅处理与该状态匹配的文件。常见用法:RELEASED = 官方正式更新,CUSTOM = 自定义脚本更新,ARCHIVED = 旧版本归档更新。
💡 SQL查询示例
查看所有已配置的更新扫描目录
SELECT path, state FROM updates_include ORDER BY path;
添加一个自定义 SQL 更新目录
INSERT INTO updates_include (path, state) VALUES ('$/sql/custom/my_module', 'CUSTOM');
❓ 常见问题
Q: 如何让自定义模块的 SQL 更新被自动执行?
在 updates_include 表中添加你的模块 SQL 目录路径,state 设为 'RELEASED' 或 'CUSTOM'。确保 SQL 文件名遵循 AC 命名规范(如 YYYY_MM_DD_HH_short_description.sql)。
Q: path 中的 $ 符号代表什么?
$ 是 AC 代码中定义的宏,代表服务端源码根目录。例如 $/sql/characters 实际指向 azerothcore-wotlk/data/sql/characters。