Files
live-hub-py/web/backend/migrations/versions/20260807_0018_cookie_check_fields.py

41 lines
1.3 KiB
Python

"""斗鱼 Cookie 有效性检测结果持久化字段
Revision ID: 20260807_0018
Revises: 20260807_0017
Create Date: 2026-08-07
"""
from collections.abc import Sequence
import sqlalchemy as sa
from alembic import op
revision: str = "20260807_0018"
down_revision: str | None = "20260807_0017"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
bind = op.get_bind()
if not sa.inspect(bind).has_table("login_tasks"):
return
columns = {column["name"] for column in sa.inspect(bind).get_columns("login_tasks")}
for column in [
sa.Column("ck_check_status", sa.String(length=16), nullable=True),
sa.Column("ck_check_result", sa.JSON(), nullable=True),
sa.Column("ck_checked_at", sa.DateTime(), nullable=True),
]:
if column.name not in columns:
op.add_column("login_tasks", column)
def downgrade() -> None:
bind = op.get_bind()
if not sa.inspect(bind).has_table("login_tasks"):
return
columns = {column["name"] for column in sa.inspect(bind).get_columns("login_tasks")}
for column_name in ["ck_checked_at", "ck_check_result", "ck_check_status"]:
if column_name in columns:
op.drop_column("login_tasks", column_name)