31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
"""users.email 加 UNIQUE — dev SPA 登录改 邮箱+密码(复用 0001 schema 的 email/password_hash)。
|
|
|
|
Revision ID: 0005
|
|
Revises: 0004
|
|
Create Date: 2026-05-19
|
|
|
|
dev SPA 登录从一日游的"邀请码"撤回到 0001 schema 早就预留的 email/password_hash 列。
|
|
唯一缺的是 email 的唯一性约束 —— login lookup 入口必须保证一封邮箱对应一个 user_id。
|
|
PG `UNIQUE` 对 NULL 不冲突,所以 platform_key 入口创的 user(email=NULL)不受影响。
|
|
|
|
注:前一个版本号 0005 短命过 invites 表,已在本次开发中 downgrade + 删 file 抹除痕迹,
|
|
本文件直接占用 0005,接 0004。
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
|
|
|
|
revision: str = "0005"
|
|
down_revision: Union[str, None] = "0004"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.create_unique_constraint("uq_users_email", "users", ["email"])
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.drop_constraint("uq_users_email", "users", type_="unique")
|