From 95fbe99b61cb861b7fe0f525ec9c2074e7c90a1e Mon Sep 17 00:00:00 2001 From: "Adrian A. Baumann" Date: Sun, 1 Mar 2026 00:50:20 +0100 Subject: [PATCH] =?UTF-8?q?feat(sso):=20migration=20=E2=80=94=20add=20keyc?= =?UTF-8?q?loak=5Fsub,=20make=20hashed=5Fpassword=20nullable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/alembic/versions/0002_keycloak_sso.py | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 backend/alembic/versions/0002_keycloak_sso.py diff --git a/backend/alembic/versions/0002_keycloak_sso.py b/backend/alembic/versions/0002_keycloak_sso.py new file mode 100644 index 0000000..ce19e00 --- /dev/null +++ b/backend/alembic/versions/0002_keycloak_sso.py @@ -0,0 +1,25 @@ +"""add keycloak_sub, make hashed_password nullable + +Revision ID: 0002 +Revises: 0001 +Create Date: 2026-03-01 +""" +from alembic import op +import sqlalchemy as sa + +revision = "0002" +down_revision = "0001" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + op.add_column("users", sa.Column("keycloak_sub", sa.String(255), nullable=True)) + op.create_unique_constraint("uq_users_keycloak_sub", "users", ["keycloak_sub"]) + op.alter_column("users", "hashed_password", nullable=True) + + +def downgrade() -> None: + op.alter_column("users", "hashed_password", nullable=False) + op.drop_constraint("uq_users_keycloak_sub", "users", type_="unique") + op.drop_column("users", "keycloak_sub")