贯通项目 DSN 并移除 Redis/InfluxDB 遗留 #2

Merged
jiang merged 1 commits from refactor/project-dsn-storage-cleanup into master 2026-08-18 18:34:48 +08:00
Owner

变更说明

本 PR 收敛合并主线后确认的数据库路由与存储遗留,不保留旧 API 兼容层,也不迁移旧调用方。

  • 项目级 REST 请求通过 X-Project-Id 同时解析 biz_data 与按需解析 iot_data
  • wndb、模拟、方案管理、模型更新和旧 Timescale 同步链改用请求级 DSN 上下文。
  • 当前业务库使用元数据中的完整 biz_data DSN;_template 与模拟临时库沿用同一主机、端口和凭据,仅替换数据库名。
  • TimescaleDB 始终使用完整 iot_data DSN,不再从项目代码字符串推导数据库名。
  • 删除 4 个 Redis 管理接口、Redis 服务与直接/间接依赖;删除未挂载的 InfluxDB 实现和旧自动任务。
  • 删除承载废弃 API 的旧 scripts/main.py 及其接口清单,不维护旧 API 调用。

API 变化

OpenAPI 从 304 条路径收敛到 300 条,移除:

  • DELETE /api/v1/redis-keys/detail
  • DELETE /api/v1/redis-keys
  • DELETE /api/v1/all-redis
  • GET /api/v1/redis

合同版本保持 1.0.0,manifest SHA-256 更新为 ac9b6fac185dfd999f1791cba51eb482df17a427b361963250aafa5fb1a276b4

验证

  • python scripts/check_openapi.py:300 paths,合同快照及哈希通过。
  • python -m pytest tests -q:240 passed,2 skipped。
  • docker build -t tjwater-server:dsn-cleanup .:通过。
  • 镜像导入 smoke:app.main 成功导入;redisfakeredisinfluxdb_clientpydocket 均不存在。

配置与部署影响

  • metadata、bizdb、tsdb 允许同机部署,也允许 TimescaleDB 独立部署,不再依赖主机相同。
  • 使用模板复制或临时方案库的模拟功能时,biz_data 账号需具备现有数据库创建、删除和连接终止操作所需权限。
  • 不新增环境变量,不打 tag、不发布、不部署。

已知非本次问题

基础镜像的 conda-libmamba-solver 要求 msgpack>=1.1.1,而项目仍固定 msgpack==1.1.0,因此容器 pip check 报工具链版本冲突;应用导入和完整测试不受影响。本 PR 不顺带升级该业务依赖。

## 变更说明 本 PR 收敛合并主线后确认的数据库路由与存储遗留,不保留旧 API 兼容层,也不迁移旧调用方。 - 项目级 REST 请求通过 `X-Project-Id` 同时解析 `biz_data` 与按需解析 `iot_data`。 - wndb、模拟、方案管理、模型更新和旧 Timescale 同步链改用请求级 DSN 上下文。 - 当前业务库使用元数据中的完整 `biz_data` DSN;`_template` 与模拟临时库沿用同一主机、端口和凭据,仅替换数据库名。 - TimescaleDB 始终使用完整 `iot_data` DSN,不再从项目代码字符串推导数据库名。 - 删除 4 个 Redis 管理接口、Redis 服务与直接/间接依赖;删除未挂载的 InfluxDB 实现和旧自动任务。 - 删除承载废弃 API 的旧 `scripts/main.py` 及其接口清单,不维护旧 API 调用。 ## API 变化 OpenAPI 从 304 条路径收敛到 300 条,移除: - `DELETE /api/v1/redis-keys/detail` - `DELETE /api/v1/redis-keys` - `DELETE /api/v1/all-redis` - `GET /api/v1/redis` 合同版本保持 `1.0.0`,manifest SHA-256 更新为 `ac9b6fac185dfd999f1791cba51eb482df17a427b361963250aafa5fb1a276b4`。 ## 验证 - `python scripts/check_openapi.py`:300 paths,合同快照及哈希通过。 - `python -m pytest tests -q`:240 passed,2 skipped。 - `docker build -t tjwater-server:dsn-cleanup .`:通过。 - 镜像导入 smoke:`app.main` 成功导入;`redis`、`fakeredis`、`influxdb_client`、`pydocket` 均不存在。 ## 配置与部署影响 - metadata、bizdb、tsdb 允许同机部署,也允许 TimescaleDB 独立部署,不再依赖主机相同。 - 使用模板复制或临时方案库的模拟功能时,`biz_data` 账号需具备现有数据库创建、删除和连接终止操作所需权限。 - 不新增环境变量,不打 tag、不发布、不部署。 ## 已知非本次问题 基础镜像的 `conda-libmamba-solver` 要求 `msgpack>=1.1.1`,而项目仍固定 `msgpack==1.1.0`,因此容器 `pip check` 报工具链版本冲突;应用导入和完整测试不受影响。本 PR 不顺带升级该业务依赖。
jiang added 1 commit 2026-08-18 18:29:57 +08:00
jiang marked the pull request as ready for review 2026-08-18 18:34:39 +08:00
jiang merged commit d63d7ef1b6 into master 2026-08-18 18:34:48 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OrgTJWater/TJWaterServerBinary#2