refactor: remove license migration steps
这个提交包含在:
父节点
6868cfcd8e
当前提交
c8bd617ae0
@ -776,23 +776,6 @@ if [ "$DEPLOY_MODE" = "new" ]; then
|
|||||||
warn "租户记录暂未就绪(tenant-service 可能仍在初始化),继续部署"
|
warn "租户记录暂未就绪(tenant-service 可能仍在初始化),继续部署"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 为 bootstrap 创建的 app 补写 app_licenses(license-service 独立 DB 写入)
|
|
||||||
_LIC_SQL_NEW="$(mktemp /tmp/xuqm-lic-new-XXXXXX.sql)"
|
|
||||||
cat > "$_LIC_SQL_NEW" <<'LIC_SQL_NEW'
|
|
||||||
INSERT INTO app_licenses (app_key, name, max_devices, registered_devices,
|
|
||||||
expires_at, is_active, remark, created_at, updated_at)
|
|
||||||
SELECT a.app_key, a.name, 1000, 0, NULL, 1, '私有化新建', NOW(), NOW()
|
|
||||||
FROM t_app a
|
|
||||||
WHERE a.app_key != 'ak_409e217e4aa14254ad73ad3c'
|
|
||||||
ON DUPLICATE KEY UPDATE updated_at = updated_at;
|
|
||||||
LIC_SQL_NEW
|
|
||||||
docker exec -i "$MYSQL_CTR" \
|
|
||||||
mysql -u "$MYSQL_USERNAME" -p"${MYSQL_PASSWORD}" "$MYSQL_DATABASE" \
|
|
||||||
--default-character-set=utf8mb4 < "$_LIC_SQL_NEW" 2>/dev/null \
|
|
||||||
&& ok "app_licenses 记录已为所有应用创建" \
|
|
||||||
|| warn "app_licenses 写入遇到警告,继续"
|
|
||||||
rm -f "$_LIC_SQL_NEW"
|
|
||||||
|
|
||||||
else
|
else
|
||||||
# ── 迁移租户:调用公有平台 export API → 私有平台 import API ──
|
# ── 迁移租户:调用公有平台 export API → 私有平台 import API ──
|
||||||
|
|
||||||
@ -849,23 +832,6 @@ print(t.get('email', ''), t.get('username', ''))
|
|||||||
DEPLOY_TENANT_USERNAME=$(printf '%s' "$_TENANT_INFO" | awk '{print $2}')
|
DEPLOY_TENANT_USERNAME=$(printf '%s' "$_TENANT_INFO" | awk '{print $2}')
|
||||||
ok "租户 ${DEPLOY_TENANT_EMAIL} 数据已成功导入"
|
ok "租户 ${DEPLOY_TENANT_EMAIL} 数据已成功导入"
|
||||||
|
|
||||||
# 为迁移的所有 app 在 app_licenses 表创建 license 记录(license-service 独立 DB 写入)
|
|
||||||
_LIC_SQL="$(mktemp /tmp/xuqm-lic-XXXXXX.sql)"
|
|
||||||
cat > "$_LIC_SQL" <<'LIC_SQL'
|
|
||||||
INSERT INTO app_licenses (app_key, name, max_devices, registered_devices,
|
|
||||||
expires_at, is_active, remark, created_at, updated_at)
|
|
||||||
SELECT a.app_key, a.name, 1000, 0, NULL, 1, '私有化迁移', NOW(), NOW()
|
|
||||||
FROM t_app a
|
|
||||||
WHERE a.app_key != 'ak_409e217e4aa14254ad73ad3c'
|
|
||||||
ON DUPLICATE KEY UPDATE updated_at = updated_at;
|
|
||||||
LIC_SQL
|
|
||||||
docker exec -i "$MYSQL_CTR" \
|
|
||||||
mysql -u "$MYSQL_USERNAME" -p"${MYSQL_PASSWORD}" "$MYSQL_DATABASE" \
|
|
||||||
--default-character-set=utf8mb4 < "$_LIC_SQL" 2>/dev/null \
|
|
||||||
&& ok "app_licenses 记录已为所有迁移应用创建" \
|
|
||||||
|| warn "app_licenses 写入遇到警告,继续"
|
|
||||||
rm -f "$_LIC_SQL"
|
|
||||||
|
|
||||||
# 更新 bootstrap.env,防止重启时重新创建占位租户
|
# 更新 bootstrap.env,防止重启时重新创建占位租户
|
||||||
cat > "$ROOT_DIR/config/tenant/bootstrap.env" <<BSENV
|
cat > "$ROOT_DIR/config/tenant/bootstrap.env" <<BSENV
|
||||||
TENANT_BOOTSTRAP_EMAIL=${DEPLOY_TENANT_EMAIL}
|
TENANT_BOOTSTRAP_EMAIL=${DEPLOY_TENANT_EMAIL}
|
||||||
|
|||||||
@ -352,39 +352,6 @@ if [ -f "$_XUQM_ENV_FILE" ] && ! grep -q "^SYSTEM_APP_KEY=" "$_XUQM_ENV_FILE"; t
|
|||||||
fi
|
fi
|
||||||
audit "migrate-tenant" "SYSTEM_APP_CREATED" "app_key=$_SYS_APP_KEY tenant=$TENANT_ID"
|
audit "migrate-tenant" "SYSTEM_APP_CREATED" "app_key=$_SYS_APP_KEY tenant=$TENANT_ID"
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
# Step 4c — 为迁移的 app 在 app_licenses 表补录 license 记录
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
printf '\n[3c/5] 同步 app_licenses 记录(license-service 授权表)...\n'
|
|
||||||
|
|
||||||
if [ -n "$APP_KEYS_RAW" ]; then
|
|
||||||
_LICENSE_SQL="$(mktemp /tmp/xuqm-license-XXXXXX.sql)"
|
|
||||||
{
|
|
||||||
printf 'SET FOREIGN_KEY_CHECKS=0;\n'
|
|
||||||
# 为每个迁移的 app 创建 license 记录(若已存在则跳过,保证幂等)
|
|
||||||
printf "INSERT INTO app_licenses (app_key, name, max_devices, registered_devices, expires_at, is_active, remark, created_at, updated_at)\n"
|
|
||||||
printf "SELECT a.app_key, a.name, 1000, 0, NULL, 1,\n"
|
|
||||||
printf " CONCAT('迁移自 %s — ', NOW()), NOW(), NOW()\n" "$TENANT_NICKNAME"
|
|
||||||
printf "FROM t_app a\n"
|
|
||||||
printf "WHERE a.app_key IN (%s)\n" "$APP_KEYS_SQL"
|
|
||||||
printf "ON DUPLICATE KEY UPDATE updated_at = updated_at;\n"
|
|
||||||
printf 'SET FOREIGN_KEY_CHECKS=1;\n'
|
|
||||||
} > "$_LICENSE_SQL"
|
|
||||||
|
|
||||||
if dst_mysql < "$_LICENSE_SQL" 2>/dev/null; then
|
|
||||||
printf ' app_licenses 记录已创建(共 %s 个应用,max_devices=1000,永不过期)\n' "$APP_COUNT"
|
|
||||||
else
|
|
||||||
warn "app_licenses 写入遇到警告,请手动检查"
|
|
||||||
fi
|
|
||||||
rm -f "$_LICENSE_SQL"
|
|
||||||
|
|
||||||
# 验证写入结果
|
|
||||||
_LICENSE_COUNT="$(dst_mysql -N -e "SELECT COUNT(*) FROM app_licenses WHERE app_key IN (${APP_KEYS_SQL})" 2>/dev/null || echo 0)"
|
|
||||||
printf ' DB check: %s/%s 个 app_licenses 记录就绪\n' "${_LICENSE_COUNT:-0}" "$APP_COUNT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
audit "migrate-tenant" "LICENSE_SYNCED" "tenant=$TENANT_ID apps=$APP_COUNT"
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Step 5 — Restart tenant-service to flush any cached state
|
# Step 5 — Restart tenant-service to flush any cached state
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户