"""users.google_email — the address Google asserts, kept beside the one the user registered with Revision ID: 0080_google_email Revises: 0079_email_canonical Create Date: 2026-09-04 Since 0079's follow-up a Google sign-in no longer overwrites `users.email`, so a deliberate `me+siftlode@gmail.com` survives being linked to a Google account whose primary is `me@gmail.com`. That leaves two true addresses for one account and only one of them stored. This column holds the other, so the account menu and the Settings sign-in row can show which address Google actually answers with. No backfill is possible: Google's answer is only known at sign-in. Accounts linked before this column existed carry NULL until their owner next signs in with Google — and for the majority the two addresses are identical anyway, where the UI shows nothing either way. """ import sqlalchemy as sa from alembic import op revision: str = "0080_google_email" down_revision: str | None = "0079_email_canonical" branch_labels: str | None = None depends_on: str | None = None def upgrade() -> None: op.add_column("users", sa.Column("google_email", sa.String(length=320), nullable=True)) def downgrade() -> None: op.drop_column("users", "google_email")