fix(update): tolerate optional database identity fields

这个提交包含在:
徐勤民 2026-07-29 00:16:12 +08:00
父节点 cd369f3f30
当前提交 61e5ce9905
共有 2 个文件被更改,包括 11 次插入6 次删除

查看文件

@ -12,6 +12,8 @@
docs-site 独立镜像定义;文档站继续由 tenant-web 在 `/docs/` 提供。
- 修正环境加载优先级:`config/infra.env` 仅作为默认值,部署生成的 `.env`
MySQL/Redis 模式和 profile 的权威来源,避免托管数据库被备份脚本误判为外部数据库。
- 可选 MySQL 用户配置缺失时不再被 Bash `set -e` 误判为升级致命错误;只有真正
必需的数据库/Redis 密码缺失才会在修改容器前给出明确失败信息。
## 2026.06.18-private.1

查看文件

@ -118,12 +118,14 @@ ok "目标私有化版本=${PRIVATE_VERSION}"
# 变量替换失败时覆盖成空字符串deploy.sh 新建部署已自动写入,此处仅升级兼容)
_patched=0
if ! grep -q "^SPRING_DATASOURCE_PASSWORD=" "$ROOT_DIR/config/secrets.env" 2>/dev/null; then
_mp="$(grep '^MYSQL_PASSWORD=' "$ROOT_DIR/config/secrets.env" | cut -d= -f2-)"
_mp="$(grep '^MYSQL_PASSWORD=' "$ROOT_DIR/config/secrets.env" 2>/dev/null | cut -d= -f2- || true)"
[ -n "$_mp" ] || fail "config/secrets.env 缺少 MYSQL_PASSWORD,无法补齐数据库运行配置"
printf '\nSPRING_DATASOURCE_PASSWORD=%s\n' "$_mp" >> "$ROOT_DIR/config/secrets.env"
_patched=1
fi
if ! grep -q "^SPRING_DATA_REDIS_PASSWORD=" "$ROOT_DIR/config/secrets.env" 2>/dev/null; then
_rp="$(grep '^REDIS_PASSWORD=' "$ROOT_DIR/config/secrets.env" | cut -d= -f2-)"
_rp="$(grep '^REDIS_PASSWORD=' "$ROOT_DIR/config/secrets.env" 2>/dev/null | cut -d= -f2- || true)"
[ -n "$_rp" ] || fail "config/secrets.env 缺少 REDIS_PASSWORD,无法补齐缓存运行配置"
printf 'SPRING_DATA_REDIS_PASSWORD=%s\n' "$_rp" >> "$ROOT_DIR/config/secrets.env"
_patched=1
fi
@ -163,7 +165,7 @@ if ! grep -q "^PRIVATE_DEPLOY_ROOT=" "$ROOT_DIR/.env" 2>/dev/null; then
fi
_CONSOLE_DOMAIN="$(grep '^CONSOLE_DOMAIN=' "$ROOT_DIR/config/xuqm.env" 2>/dev/null \
| cut -d= -f2- | tr -d '"' | tr -d "'")"
| cut -d= -f2- | tr -d '"' | tr -d "'" || true)"
_NGINX_BIND="${NGINX_BIND:-80}"
_NGINX_PORT="${_NGINX_BIND##*:}"
@ -553,9 +555,10 @@ if grep -q 'bugcollect-service:' "$ROOT_DIR/docker-compose.yml" 2>/dev/null; the
if [ -n "$_mysql_ctr" ]; then
_bc_db="${BUGCOLLECT_DB:-xuqm_bugcollect}"
_secrets="$ROOT_DIR/config/secrets.env"
_mysql_root_pw="$(grep '^MYSQL_ROOT_PASSWORD=' "$_secrets" 2>/dev/null | cut -d= -f2-)"
_mysql_user="$(grep '^MYSQL_USERNAME=' "$_secrets" 2>/dev/null | cut -d= -f2-)"
[ -z "$_mysql_user" ] && _mysql_user="$(grep '^MYSQL_USER=' "$_secrets" 2>/dev/null | cut -d= -f2-)"
_mysql_root_pw="$(grep '^MYSQL_ROOT_PASSWORD=' "$_secrets" 2>/dev/null | cut -d= -f2- || true)"
_mysql_user="$(grep '^MYSQL_USERNAME=' "$_secrets" 2>/dev/null | cut -d= -f2- || true)"
[ -z "$_mysql_user" ] && \
_mysql_user="$(grep '^MYSQL_USER=' "$_secrets" 2>/dev/null | cut -d= -f2- || true)"
# docker-compose.yml 中 SPRING_DATASOURCE_USERNAME 默认值为 xuqm,与此保持一致
[ -z "$_mysql_user" ] && _mysql_user="xuqm"
info "建库检查: container=${_mysql_ctr} db=${_bc_db} user=${_mysql_user}"