2.5 KiB
2026-09-22 数据库脚本同步
以 ai-dev-next 的 c0b8a966b 为参考,仅同步当前商业版代码对应的结构,不包含 AI 表、菜单、路由和镜像初始化入口。
新安装
单体使用 db/0pigxx_boot.sql;微服务按 db/Dockerfile 所列脚本初始化。两种模式的公共表结构已对齐,包括 utf8mb4、日志 user_agent 的 TEXT 类型和用户 dept_id 的默认值 0。
内置 app、pig 客户端的新安装授权类型与参考分支一致,移除 client_credentials;其他授权类型保持不变。服务端仍支持该授权模式,需要机器客户端时单独配置。
既有数据库
不要对已有数据库重跑带有 DROP TABLE 的初始化脚本。备份后先在数据库副本验证,根据实际部署模式选择升级文件:
| 文件 | 适用范围 |
|---|---|
20260922_schema_alignment_boot.sql |
单体;执行时指定目标数据库,默认部署为 pigxx_boot |
20260922_schema_alignment_services.sql |
微服务;核对脚本内 USE 的各模块数据库名 |
20260922_user_social.sql |
从旧版用户表迁移社交身份;单体在 pigxx_boot 执行,微服务在 pigxx 执行 |
结构升级以本轮修改前的 dev 为起点,不是任意历史版本的全量升级工具;更早版本缺少的表或字段需要按实际版本补齐。MySQL DDL 会隐式提交,脚本失败后应核对已完成的语句再重跑。为同步修改 Quartz 外键关联列的字符集,脚本暂时关闭当前会话的外键检查,并在结尾恢复;执行期间停止相关写入,失败时退出该会话。微服务旧表中 dept_id IS NULL 的记录先转为 0,再施加非空约束。
社交身份脚本将 wx_openid、mini_openid、qq_openid、wx_cp_userid、wx_ding_userid 映射到代码中的 WX、MINI、QQ、WEIXIN_CP、DINGTALK。迁移保留原字段,重复执行跳过完全相同的身份映射;绑定冲突触发唯一索引错误并回滚当次数据迁移,不覆盖新绑定。该脚本使用 UUID_SHORT() 生成迁移记录 ID,应在同一 MySQL 实例执行,迁移期间停止账号绑定写入。
结构升级不会覆盖既有 OAuth 授权、第三方应用密钥、注册开关或自定义菜单。旧安装的飞书字典项及应用配置应结合 pigx-upms/FEISHU-LOGIN.md 核对;本目录脚本不替用户配置飞书应用。
动态加签的 process_task_add_sign_record、assignment_origin、initial_user_id 已存在于当前单体及微服务初始化脚本。本轮未改动其结构。