Files
Aether/alembic/versions
fawney19 97b15afe7c feat: 添加多维度计费系统和视频任务管理功能
计费系统:
- 新增 BillingRule 和 DimensionCollector 数据模型
- 实现 FormulaEngine 安全表达式求值引擎 (AST 白名单)
- 支持 dimension/matrix/tiered/constant 多种维度映射
- BillingRuleService 支持 Provider Model -> GlobalModel 规则回退
- CLI task_type 在计费域自动映射为 chat

视频任务增强:
- 添加 request_metadata 字段记录候选 key 和计费规则快照
- 后台轮询支持并发控制 (Semaphore + 独立 session)
- 任务终态自动写入 Usage 记录并计算成本
- 新增视频任务管理 API 和前端界面

其他改进:
- UsageService 新增 record_usage_with_custom_cost 方法
- StandardizedUsage 支持 dimensions 字段 (兼容 extra)
- 配置新增 BILLING_REQUIRE_RULE 和 BILLING_STRICT_MODE
2026-01-31 19:11:25 +08:00
..
2025-12-10 20:52:44 +08:00

Aether - 数据库迁移说明

当前版本

  • Revision ID: aether_baseline
  • 创建日期: 2025-12-06
  • 状态: 全新基线

迁移历史

所有历史增量迁移已清理,当前以完整 schema 作为新起点。

核心数据库结构

用户系统

  • users: 用户账户管理
  • api_keys: API 密钥管理
  • user_quotas: 用户配额管理
  • user_preferences: 用户偏好设置

Provider 三层架构

  • providers: LLM 提供商配置
  • provider_endpoints: Provider 的 API 端点配置
  • provider_api_keys: Endpoint 的具体 API 密钥
  • api_key_provider_mappings: 用户 API Key 到 Provider 的映射关系

模型系统

  • global_models: 统一模型定义GlobalModel
  • models: Provider 的模型实现和价格配置
  • model_mappings: 统一的别名与降级映射表

监控和追踪

  • usage: API 使用记录
  • request_candidates: 请求候选记录
  • provider_usage_tracking: Provider 使用统计
  • audit_logs: 系统审计日志

系统功能

  • announcements: 系统公告
  • announcement_reads: 公告阅读记录
  • system_configs: 系统配置

从旧数据库迁移

如需从旧数据库迁移数据,请使用迁移脚本:

# 设置环境变量
export OLD_DATABASE_URL="postgresql://user:pass@old-host:5432/old_db"
export NEW_DATABASE_URL="postgresql://user:pass@new-host:5432/aether"

# 干运行(查看迁移量)
python scripts/migrate_data.py --dry-run

# 执行迁移
python scripts/migrate_data.py

# 只迁移特定表
python scripts/migrate_data.py --tables users,providers,api_keys

# 跳过大表
python scripts/migrate_data.py --skip usage,audit_logs

新数据库初始化

# 1. 运行迁移创建表结构
DATABASE_URL="postgresql://user:pass@host:5432/aether" uv run alembic upgrade head

# 2. 初始化管理员账户
python -m src.database.init_db

未来迁移

基于 aether_baseline 创建增量迁移:

# 修改模型后,生成新的迁移
DATABASE_URL="..." uv run alembic revision --autogenerate -m "描述变更"

# 应用迁移
DATABASE_URL="..." uv run alembic upgrade head