feat(db): 迁移 db 配置到 confs 统一配置服务
- 新增 confs/configs/db.ini 集中托管 db 服务配置(server/database/logs/confs) - dbv2.py 采用三层 fail-safe 加载模式:内置默认值 → confs(db.ini,优先)→ 环境变量覆盖(最高优先级,Docker 兼容) - _merge_ini() 白名单合并,仅覆盖已知 section/key,ConfigParser(interpolation=None) 禁用插值 - db 先于 confs 启动时连接失败静默 fail-safe,启动时打印配置来源 - db_tools.py 运维工具保持独立,直接读 DATABASE_URL 环境变量,不依赖 confs - 更新 confs/README.md 与 db/README.md 文档
This commit is contained in:
1 parent
c06eb19f64
commit
6ebd544619
4 files changed
+150
-15
No files matched your search
+11
-2
@@ -237,6 +237,7 @@ except RpcError as e:
|
||||
|------|---------|---------|
|
||||
| [static](../static/) | [static.ini](configs/static.ini) | 三层 fail-safe:内置默认值 → confs(优先)→ 本地 `config.ini` 回退 |
|
||||
| [dnfs](../dnfs/) | [dnfs.ini](configs/dnfs.ini) | 三层 fail-safe:内置默认值 → confs(优先)→ 环境变量覆盖 |
|
||||
| [db](../db/) | [db.ini](configs/db.ini) | 三层 fail-safe:内置默认值 → confs(优先)→ 环境变量覆盖(最高优先级,Docker 兼容) |
|
||||
|
||||
static 的接入实现见 [static/fsys.py](../static/fsys.py):
|
||||
- `_fetch_from_confs()` 通过 `RpcClient` 调 `get` 路由取 `static.ini`,3 秒超时
|
||||
@@ -249,7 +250,14 @@ dnfs 的接入实现见 [dnfs/dnfs.py](../dnfs/dnfs.py):
|
||||
- 支持的环境变量:`LISTEN_ADDR`/`LISTEN_PORT`/`DB_HOST`/`DB_PORT`/`REVIEW_URL`/`CONFS_HOST`/`CONFS_PORT`
|
||||
- Docker 环境通过环境变量传入服务名(db/ai_review),覆盖 confs 中的 127.0.0.1 默认值
|
||||
|
||||
其他服务(gateway / waf / ai_review / smtp / db)尚未接入,仍读各自本地配置。
|
||||
db 的接入实现见 [db/dbv2.py](../db/dbv2.py):
|
||||
- 三层加载顺序:内置默认值 → confs(db.ini)→ 环境变量覆盖(优先级最高)
|
||||
- 配置项涵盖:`[server]` host/port/workers、`[database]` url、`[logs]` retention_days/max_records/cleanup_interval、`[confs]` host/port
|
||||
- 支持的环境变量:`LISTEN_ADDR`/`LISTEN_PORT`/`WORKERS`/`DATABASE_URL`/`CONFS_HOST`/`CONFS_PORT`
|
||||
- 注意:db 先于 confs 启动(启动顺序 db → confs → ai_review/...),db 启动时若 confs 不可用会静默 fail-safe 使用默认值,配置来源会打印到控制台
|
||||
- 独立运维工具 `db_tools.py`(backup/export/import 等)仍直接读 `DATABASE_URL` 环境变量,不依赖 confs,避免运维脚本依赖服务就绪
|
||||
|
||||
其他服务(gateway / waf / ai_review / smtp)尚未接入,仍读各自本地配置。
|
||||
|
||||
## 项目结构
|
||||
|
||||
@@ -260,7 +268,8 @@ confs/
|
||||
├── configs/ # 配置文件存放目录(被分发对象)
|
||||
│ ├── example.ini # 示例配置
|
||||
│ ├── static.ini # static 服务配置(已接入分发)
|
||||
│ └── dnfs.ini # dnfs 服务配置(已接入分发)
|
||||
│ ├── dnfs.ini # dnfs 服务配置(已接入分发)
|
||||
│ └── db.ini # db 服务配置(已接入分发)
|
||||
├── docs/
|
||||
│ └── SECURITY_AUDIT_20260801.md # 安全审计报告
|
||||
├── _set.sh # 初始化脚本(建 venv + 安装依赖)
|
||||
|
||||
Reference in new issue
Block a user