Skip to content

MySQL 初始化与迁移 ​

业务模块将迁移脚本放在 src/main/resources/db/migration,常见命名为 Vx.y.z__description.sql。Flyway 以版本顺序执行,已执行脚本不得原地修改。

发布顺序 ​

  1. 备份目标库并记录当前迁移版本。
  2. 先执行向后兼容的结构变更,再发布使用新字段的应用。
  3. 检查索引、字符集、时区、连接池和最小权限账号。
  4. 验证关键表读写、异步消费者和回滚/补偿路径。

删除或大范围改写字段需要拆成多版本,并保留数据回填和兼容窗口。

AI 相关迁移顺序 ​

先创建或扩展 Agent、模型、工具、Dataset、向量任务、FileRoom、轨迹和计费表,再发布能够写入新字段的应用,最后删除旧字段。JSON 字段(toolIds、datasetIds、Skill/变量配置)变更必须同时检查 MyBatis JacksonTypeHandler、旧版本读取和 checkpoint serializer。

迁移前记录 Flyway schema history、最大表大小、长事务和备份位置;迁移后检查默认模型、Agent 绑定、Dataset relation、未完成向量化任务、session header 和 MQ consumer。删除 Agent/文件/向量时遵守先解除绑定或进回收站,再异步清理的顺序。

数据库恢复只恢复表并不足够:还要恢复 JSONL 会话目录、对象存储、向量索引和 Nacos 配置版本,并用 sessionId/runId 做一致性抽样。