Files
wecom-ai-assistant/backend/alembic/versions/003_add_missing_columns.py
2026-02-05 16:36:32 +08:00

37 lines
1.2 KiB
Python

"""add missing columns if users table exists without them
Revision ID: 003
Revises: 002
Create Date: 2025-02-05
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
revision: str = "003"
down_revision: Union[str, None] = "002"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# 检查 users 表是否存在 role 列,若不存在则添加
conn = op.get_bind()
inspector = sa.inspect(conn)
columns = [c["name"] for c in inspector.get_columns("users")] if inspector.has_table("users") else []
if "users" in inspector.get_table_names():
if "role" not in columns:
op.add_column("users", sa.Column("role", sa.String(32), nullable=False, server_default="admin"))
if "is_active" not in columns:
op.add_column("users", sa.Column("is_active", sa.Boolean(), nullable=False, server_default="true"))
if "created_at" not in columns:
op.add_column("users", sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now(), nullable=True))
def downgrade() -> None:
# 可选:移除这些列(通常不需要)
pass