"""和平小店总开关:`douyu_config.peace_enabled`(默认关) 小店目前是**关闭状态**,但一键查询仍会对每个账号发小店的请求,结果 100% 失败: Livelink登录态校验失败 实测 200 个账号里 `exchange_records_peace` 失败 195 次(100%)。这既淹掉真错误, 又让人以为出了故障。加一个总开关,关着时**完全跳过**小店的所有请求 (不是"发出去再记个错")。 默认 False —— 与"小店当前关闭"的现状一致;将来恢复时在后台打开即可。 """ from __future__ import annotations import sqlalchemy as sa from alembic import op revision: str = "20261004_0050" down_revision: str | None = "20261004_0049" branch_labels: str | None = None depends_on: str | None = None COLUMN = "peace_enabled" def _column_exists(name: str) -> bool: """可安全重跑(应用启动时会自动跑迁移)。""" conn = op.get_bind() count = conn.execute( sa.text( "SELECT COUNT(*) FROM information_schema.columns " "WHERE table_schema = DATABASE() " "AND table_name = 'douyu_config' AND column_name = :name" ), {"name": name}, ).scalar() return bool(count) def upgrade() -> None: if not _column_exists(COLUMN): op.add_column( "douyu_config", sa.Column( COLUMN, sa.Boolean(), nullable=False, server_default=sa.text("0"), comment="和平小店总开关;关着时一键查询完全跳过小店请求", ), ) def downgrade() -> None: op.drop_column("douyu_config", COLUMN)