"""对 SQLite settings 表执行维护 SQL(见 db_optimize_settings.sql)。 使用当前应用配置的数据库路径(app.core.db.DB_PATH)。pytest 使用 PROXYPOOL_DB_PATH 指向 db/proxies.test.sqlite,勿在生产库路径上误跑测试夹具。 """ import asyncio import os import sys # 保证可 import app sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) async def main() -> None: from app.core.db import DB_PATH, ensure_db_dir import aiosqlite sql_path = os.path.join(os.path.dirname(__file__), "db_optimize_settings.sql") with open(sql_path, encoding="utf-8") as f: script = f.read() ensure_db_dir() if not os.path.isfile(DB_PATH): print(f"数据库不存在,跳过: {DB_PATH}") return async with aiosqlite.connect(DB_PATH) as db: await db.executescript(script) await db.commit() print(f"已执行设置维护: {DB_PATH}") print("请重启应用或在 WebUI 保存一次设置以使并发/超时生效。") if __name__ == "__main__": asyncio.run(main())