Fix migration for PostgreSQL
This commit is contained in:
parent
50972c209e
commit
44e6f85da1
1 changed files with 9 additions and 1 deletions
|
@ -9,6 +9,7 @@ from typing import Sequence, Union
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# 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_refresh_token'), 'sessions', ['refresh_token'], unique=True)
|
||||||
op.create_index(op.f('ix_sessions_user_id'), 'sessions', ['user_id'], unique=False)
|
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('email', sa.String(), nullable=True))
|
||||||
op.add_column('users', sa.Column('password', 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 email = id || \'@example.com\'')
|
||||||
op.execute('UPDATE users SET password = \'invalid\'')
|
op.execute('UPDATE users SET password = \'invalid\'')
|
||||||
op.execute('UPDATE users SET role = \'MEMBER\'')
|
op.execute('UPDATE users SET role = \'MEMBER\'')
|
||||||
|
|
||||||
with op.batch_alter_table('users', schema=None) as batch_op:
|
with op.batch_alter_table('users', schema=None) as batch_op:
|
||||||
batch_op.alter_column('email', nullable=False)
|
batch_op.alter_column('email', nullable=False)
|
||||||
batch_op.alter_column('password', nullable=False)
|
batch_op.alter_column('password', nullable=False)
|
||||||
batch_op.alter_column('role', nullable=False)
|
batch_op.alter_column('role', nullable=False)
|
||||||
|
|
||||||
op.drop_index('ix_users_friendly_name', table_name='users')
|
op.drop_index('ix_users_friendly_name', table_name='users')
|
||||||
op.create_index(op.f('ix_users_email'), 'users', ['email'], unique=True)
|
op.create_index(op.f('ix_users_email'), 'users', ['email'], unique=True)
|
||||||
# ### end Alembic commands ###
|
# ### end Alembic commands ###
|
||||||
|
|
Loading…
Add table
Reference in a new issue