# 更新日志 ## 2026.07.28-private.1 - 私有化升级继承完整服务 profile,自动移除已废弃的 license profile,并在存在 BugCollect 定义时追加而不是覆盖原 profile,避免升级只拉取单一服务。 - 旧部署缺少 JWT 和应用商店监测密钥时各生成一次部署独享密钥,后续升级保持原值; 不再使用可公开推导的 JWT 默认值。 - 全量部署移除镜像仓库、MySQL 和 Redis 的可用默认密码;交互模式安全输入, 非交互模式必须显式注入只读仓库凭据,托管数据库密码自动随机生成。 - 删除未被入口调用的重复 configure/install/upgrade 实现、占位目录文件和不存在的 docs-site 独立镜像定义;文档站继续由 tenant-web 在 `/docs/` 提供。 - 修正环境加载优先级:`config/infra.env` 仅作为默认值,部署生成的 `.env` 为 MySQL/Redis 模式和 profile 的权威来源,避免托管数据库被备份脚本误判为外部数据库。 - 可选 MySQL 用户配置缺失时不再被 Bash `set -e` 误判为升级致命错误;只有真正 必需的数据库/Redis 密码缺失才会在修改容器前给出明确失败信息。 ## 2026.06.18-private.1 ### 修复 **Flyway 迁移校验和不匹配导致服务 crash-loop** - 所有服务的 `application.yml` 添加 `spring.flyway.validate-on-migrate: false` - 升级后即使迁移文件被修改,服务也能正常启动,不会因 checksum 不匹配而崩溃 - 故障排查文档补充 Flyway checksum mismatch 处理说明 ### 升级方法 在私有化服务器上执行: ```bash bash scripts/update.sh ``` --- ## 2026.05.21-private.2 ### 变更 **Android SDK** - 版本升级至 `1.0.1`,新增 `serverUrl` 参数 - `XuqmSDK.initialize(context, appKey, serverUrl = "https://your-server.com")` 可使用指定私有化服务地址完成初始化 ### 升级方法 在私有化服务器上执行: ```bash bash scripts/update.sh ``` 升级脚本会自动拉取最新镜像并重启受影响容器,全程无需停机迁移。 --- ## 2026.05.21-private.1 - 新增 `scripts/reset.sh` 容器重置脚本,解决 nginx 502 / crash-loop / 镜像不生效等问题 - 完善故障排查文档(`docs/runbook.md`) - 修正各服务端口文档 --- ## 2026.05.18-private.1 - 初始版本