Stacy Olivas
|
904303ff00
|
infra: DB migration versioning, aiosqlite AsyncDBManager, and APScheduler
Migration versioning:
- db_migrations.py: MigrationRunner with five numbered migrations;
schema_version table tracks applied state; migrations are append-only;
runner called on startup from db_manager.py
AsyncDBManager:
- AsyncDBManager in db_manager.py provides non-blocking DB access in
async coroutines via aiosqlite; exposed as bot.async_db_manager
- aiosqlite>=0.19.0 added to dependencies
APScheduler:
- scheduler.py migrated from schedule lib to APScheduler
BackgroundScheduler + CronTrigger; schedule dependency removed
Message write queue:
- Background drain thread eliminates per-packet sqlite3.connect();
executemany batch insert every 0.5s; shutdown path flushes remaining rows
|
2026-03-17 18:07:18 -07:00 |
|