修复数据库配置:支持MySQL分字段配置
问题:config.py只处理了PINEAGENTS_DEMO_DATABASE_URL,没有处理 PINEAGENTS_MYSQL_HOST/PORT/USER/PASSWORD分字段配置,导致服务端 使用空的SQLite数据库,无法识别用户身份(园区/企业)。 修复: - 支持MySQL分字段配置,自动构建DATABASE_URL - 优先级:PINEAGENTS_DEMO_DATABASE_URL > MySQL分字段 > SQLite默认 - 与Redis配置方式保持一致
This commit is contained in:
+15
-4
@@ -43,11 +43,22 @@ for _d in (DATA_DIR, LOG_DIR, FILES_DIR, KEYS_DIR, PROMPTS_DIR, UPLOADS_DIR):
|
||||
_d.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
# 数据库连接(异步)。开发默认 SQLite+aiosqlite;生产用 MySQL+asyncmy(环境变量覆盖)。
|
||||
# 支持两种配置方式:
|
||||
# 1. PINEAGENTS_DEMO_DATABASE_URL 完整连接串(优先级最高)
|
||||
# 2. PINEAGENTS_MYSQL_HOST/PORT/USER/PASSWORD/DB 分字段配置(与 .env 对齐)
|
||||
# 示例 MySQL:PINEAGENTS_DEMO_DATABASE_URL=mysql+asyncmy://user:pass@127.0.0.1:3306/opc?charset=utf8mb4
|
||||
DATABASE_URL = os.environ.get(
|
||||
"PINEAGENTS_DEMO_DATABASE_URL",
|
||||
f"sqlite+aiosqlite:///{DATA_DIR / 'app.db'}",
|
||||
)
|
||||
_mysql_host = os.environ.get("PINEAGENTS_MYSQL_HOST", "")
|
||||
_mysql_port = os.environ.get("PINEAGENTS_MYSQL_PORT", "3306")
|
||||
_mysql_user = os.environ.get("PINEAGENTS_MYSQL_USER", "")
|
||||
_mysql_password = os.environ.get("PINEAGENTS_MYSQL_PASSWORD", "")
|
||||
_mysql_db = os.environ.get("PINEAGENTS_MYSQL_DB", "opc")
|
||||
if os.environ.get("PINEAGENTS_DEMO_DATABASE_URL"):
|
||||
DATABASE_URL = os.environ["PINEAGENTS_DEMO_DATABASE_URL"]
|
||||
elif _mysql_host:
|
||||
_auth = f"{_mysql_user}:{_mysql_password}@" if _mysql_user else ""
|
||||
DATABASE_URL = f"mysql+asyncmy://{_auth}{_mysql_host}:{_mysql_port}/{_mysql_db}?charset=utf8mb4"
|
||||
else:
|
||||
DATABASE_URL = f"sqlite+aiosqlite:///{DATA_DIR / 'app.db'}"
|
||||
|
||||
# Redis(缓存/会话/限流/分布式锁),空则降级内存。
|
||||
# 支持两种配置方式:
|
||||
|
||||
Reference in New Issue
Block a user