feat(db): 数据库层 MySQL 适配(方言钩子/同步驱动映射/种子方言分支)

- infrastructure/db.py:MySQL 方言编译钩子(String 无长度→VARCHAR(255),Text→MEDIUMTEXT);
  新增 sync_database_url/make_sync_engine(sqlite+aiosqlite→sqlite,mysql+asyncmy→mysql+pymysql)
- models.py:sessions.token 显式 String(2048)、system_configs.value 改 Text(存量数据超 255,MySQL 需兼容)
- seed.py:_add_agent 幂等插入按方言分支(SQLite=INSERT OR IGNORE / MySQL=INSERT IGNORE)
- park/tenants.py:同步只读引擎改走 make_sync_engine(原 +aiosqlite replace 对 MySQL 无效)
- 依赖补 pymysql;.env.example 补 PINEAGENTS_DEMO_DATABASE_URL 说明
This commit is contained in:
Pine
2026-08-31 21:40:17 +08:00
parent 9a5e9176b0
commit ee1dfdfed9
7 changed files with 74 additions and 11 deletions
+5
View File
@@ -25,3 +25,8 @@ PINEAGENTS_WECHATPAY_PACKAGES=[{"id":"p10","amount":10,"bonus":0,"label":"10 元
PINEAGENTS_RECHARGE_MIN_YUAN=1
PINEAGENTS_RECHARGE_MAX_YUAN=5000
PINEAGENTS_RECHARGE_EXPIRE_MINUTES=15
# ---- 数据库(SQLite→MySQL 切换;未配置默认 serverdata/data/app.db----
# 示例:mysql+asyncmy://user:pass@192.168.1.3:8091/opc?charset=utf8mb4
# 首次迁移:uv run python scripts/migrate_sqlite_to_mysql.py(建表+搬数据+行数校验)
PINEAGENTS_DEMO_DATABASE_URL=