Files
ProxyPool/script/settings_maintain.py
祀梦 46d84a0cdc chore: remove scripts/ dir; move settings maintenance to script/settings_maintain.py
Avoids path autocomplete clash with script/start.bat under script/

Made-with: Cursor
2026-04-05 13:41:38 +08:00

45 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""维护 SQLite settings 表:删除废弃键并写入推荐验证参数。
请在项目根目录执行(与 start.bat 同级的上一级):
python script/settings_maintain.py
改库后需重启应用或在 WebUI 保存一次设置WorkerPool / Validator 才会重载并发与超时。
"""
import asyncio
import os
import sys
_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if _ROOT not in sys.path:
sys.path.insert(0, _ROOT)
_SETTINGS_MAINTENANCE_SQL = """
DELETE FROM settings WHERE key = 'crawl_timeout';
DELETE FROM settings WHERE key = 'max_retries';
INSERT INTO settings (key, value, updated_at) VALUES ('validation_timeout', '6', CURRENT_TIMESTAMP)
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = CURRENT_TIMESTAMP;
INSERT INTO settings (key, value, updated_at) VALUES ('default_concurrency', '120', CURRENT_TIMESTAMP)
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = CURRENT_TIMESTAMP;
"""
async def _run() -> None:
import aiosqlite
from app.core.db import DB_PATH, ensure_db_dir
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(_SETTINGS_MAINTENANCE_SQL)
await db.commit()
print(f"已执行设置维护: {DB_PATH}")
print("请重启应用或在 WebUI 保存一次设置以使并发/超时生效。")
if __name__ == "__main__":
asyncio.run(_run())