📋 表概述

updates_include 表是 AzerothCore 数据库版本管理系统的配置表。它定义了数据库更新器(DBUpdater)需要扫描哪些目录下的 SQL 更新文件。支持通过 $ 符号引用源码相对路径,并可为每个目录指定状态过滤。

📊 表结构

字段名数据类型默认值说明
pathvarchar(200)(无)SQL 更新文件目录路径,$ 表示源码根目录
stateenum'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