"""为审计日志增加操作结果标记。 Revision ID: 20260814_0029 Revises: 20260814_0028 Create Date: 2026-08-14 """ from collections.abc import Sequence import sqlalchemy as sa from alembic import op revision: str = "20260814_0029" down_revision: str | None = "20260814_0028" branch_labels: str | Sequence[str] | None = None depends_on: str | Sequence[str] | None = None def upgrade() -> None: """保留历史日志,新增可空结果字段。""" bind = op.get_bind() inspector = sa.inspect(bind) if not inspector.has_table("audit_logs"): return columns = {column["name"] for column in inspector.get_columns("audit_logs")} if "success" not in columns: op.add_column("audit_logs", sa.Column("success", sa.Boolean(), nullable=True)) indexes = {index["name"] for index in inspector.get_indexes("audit_logs")} if "ix_audit_logs_success" not in indexes: op.create_index("ix_audit_logs_success", "audit_logs", ["success"]) def downgrade() -> None: """移除新增结果字段。""" bind = op.get_bind() inspector = sa.inspect(bind) if not inspector.has_table("audit_logs"): return indexes = {index["name"] for index in inspector.get_indexes("audit_logs")} if "ix_audit_logs_success" in indexes: op.drop_index("ix_audit_logs_success", table_name="audit_logs") columns = {column["name"] for column in inspector.get_columns("audit_logs")} if "success" in columns: op.drop_column("audit_logs", "success")