✨ feat(database): 完善请求日志体系并为全表补充时间字段
- request_log 新增 user_agent 列(含旧表 ALTER 迁移)及 ip/status 索引,记录解码后的明文 query(含 key,不脱敏) - 请求日志批量写入改为多值 INSERT 单次往返,替代事务逐条 Exec - 新增按本地时区分天聚合查询,状态页展示今日请求量与近 7 天请求趋势(峰值日高亮) - 新增 TZ 时区支持:.env 配置 TZ 后日志时间戳与状态页全部时间统一生效,二进制内嵌 tzdata 保证容器可用 - 五张表统一补齐 created_at/updated_at 字段,启动时自动补列并按业务时间回填旧行 - device_pool 的 device_header 增加唯一约束;audio_cache 写入改为 UPSERT 修复同 key 重复报错 - 状态页"最近请求"新增 UA 列与限流状态显示;config.yaml 暴露 rate_limit_qps 配置并默认启用请求日志 - deploy.sh 同名版本默认拒绝覆盖,新增 --force/-f 参数显式允许覆盖
This commit is contained in:
1 parent
1a4997e031
commit
e3d96ca637
13 files changed
+288
-55
No files matched your search
@@ -60,6 +60,7 @@ BUILD_ONLY=false
|
||||
ROLLBACK=false
|
||||
ROLLBACK_VERSION=""
|
||||
LIST=false
|
||||
FORCE=false
|
||||
|
||||
print_help() {
|
||||
cat <<EOF
|
||||
@@ -69,6 +70,7 @@ print_help() {
|
||||
--init 首次初始化,写入 systemd 和 nginx 配置
|
||||
--no-pull 跳过 git pull
|
||||
--build-only 只编译,不部署、不重启服务
|
||||
--force, -f 允许覆盖已存在的同名版本(默认报错退出)
|
||||
--rollback [版本] 回滚到指定版本(不带版本号则交互式选择)
|
||||
--list 列出所有已部署的版本
|
||||
--help, -h 显示此帮助
|
||||
@@ -101,6 +103,7 @@ while [ $i -lt ${#ARGS[@]} ]; do
|
||||
fi
|
||||
;;
|
||||
--list) LIST=true ;;
|
||||
--force|-f) FORCE=true ;;
|
||||
--help|-h) print_help; exit 0 ;;
|
||||
v*) VERSION="$arg" ;;
|
||||
*) err "未知参数: $arg"; print_help; exit 1 ;;
|
||||
@@ -280,6 +283,14 @@ fi
|
||||
# ==================== 4. 部署二进制 ====================
|
||||
log "部署到 ${BIN_DIR}..."
|
||||
$SUDO mkdir -p "${BIN_DIR}"
|
||||
# 同名版本默认拒绝覆盖,防止 --rollback 回滚到被覆盖的旧文件
|
||||
if [ -e "${BIN_DIR}/${APP_NAME}-${VERSION}" ]; then
|
||||
if [ "$FORCE" = true ]; then
|
||||
warn "版本 ${VERSION} 已存在,--force 覆盖"
|
||||
else
|
||||
err "版本 ${VERSION} 已存在于 ${BIN_DIR},换版本号或加 --force 覆盖"; exit 1
|
||||
fi
|
||||
fi
|
||||
$SUDO mv "${APP_NAME}-${VERSION}" "${BIN_DIR}/"
|
||||
$SUDO chmod +x "${BIN_DIR}/${APP_NAME}-${VERSION}"
|
||||
|
||||
|
||||
Reference in new issue
Block a user