diff --git a/backend/alembic/versions/20250313_c7f72154c90b-add_user_authentication.py b/backend/alembic/versions/20250313_c7f72154c90b-add_user_authentication.py index 7e2c00b..6edc093 100644 --- a/backend/alembic/versions/20250313_c7f72154c90b-add_user_authentication.py +++ b/backend/alembic/versions/20250313_c7f72154c90b-add_user_authentication.py @@ -9,6 +9,7 @@ from typing import Sequence, Union from alembic import op import sqlalchemy as sa +from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. @@ -31,16 +32,23 @@ def upgrade() -> None: ) op.create_index(op.f('ix_sessions_refresh_token'), 'sessions', ['refresh_token'], unique=True) op.create_index(op.f('ix_sessions_user_id'), 'sessions', ['user_id'], unique=False) + op.add_column('users', sa.Column('email', sa.String(), nullable=True)) op.add_column('users', sa.Column('password', sa.String(), nullable=True)) - op.add_column('users', sa.Column('role', sa.Enum('MEMBER', 'ADMINISTRATOR', name='role'), nullable=True)) + + role_enum = postgresql.ENUM('MEMBER', 'ADMINISTRATOR', name='role') + role_enum.create(op.get_bind(), checkfirst=False) + op.add_column('users', sa.Column('role', type_=role_enum, nullable=True)) + op.execute('UPDATE users SET email = id || \'@example.com\'') op.execute('UPDATE users SET password = \'invalid\'') op.execute('UPDATE users SET role = \'MEMBER\'') + with op.batch_alter_table('users', schema=None) as batch_op: batch_op.alter_column('email', nullable=False) batch_op.alter_column('password', nullable=False) batch_op.alter_column('role', nullable=False) + op.drop_index('ix_users_friendly_name', table_name='users') op.create_index(op.f('ix_users_email'), 'users', ['email'], unique=True) # ### end Alembic commands ###