"""users.name / users.user_name 列(平台登录注入的用户档案). Revision ID: 0016 Revises: 0015 Create Date: 2026-06-25 给 users 加两列:name(显示名/姓名)+ user_name(平台账号名),均 nullable。 平台经 /v1/auth/login(platform_key 形态)在 body 里注入,ensure_user_row upsert 落库;邮箱密码 / 历史行留空。将来 OIDC 接管时由 ID token 的 name / preferred_username claim 注入,数据流不变。详 DESIGN §7.3 / §7.4。 纯加列、不动现有数据(平滑兼容线上存量行,留 NULL)。 """ from typing import Sequence, Union import sqlalchemy as sa from alembic import op revision: str = "0016" down_revision: Union[str, None] = "0015" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.add_column("users", sa.Column("name", sa.Text(), nullable=True)) op.add_column("users", sa.Column("user_name", sa.Text(), nullable=True)) def downgrade() -> None: op.drop_column("users", "user_name") op.drop_column("users", "name")