"""add_admin_role Revision ID: f1c89330a35d Revises: ad7fa901b370 Create Date: 2021-06-10 11:17:31.598174 """ from alembic import op import sqlalchemy as sa from sqlalchemy.dialects import postgresql # revision identifiers, used by Alembic. from migrations.utils import get_table revision = 'f1c89330a35d' down_revision = '67142f57296a' branch_labels = None depends_on = None def upgrade(): bind = op.get_bind() op.add_column('User', sa.Column('is_admin', sa.Boolean(), nullable=False, server_default="FALSE")) user_project_table = get_table(bind, "UserProject") bind.execute(user_project_table.update().values(role=user_project_table.c.role + 1)) op.alter_column('Project', 'is_protected', nullable=False, server_default="FALSE", new_column_name='is_confidential') bind.execute(f'''UPDATE "Project" SET is_deleted = FALSE where is_confidential is TRUE''') def downgrade(): bind = op.get_bind() op.drop_column('User', 'is_admin') user_project_table = get_table(bind, "UserProject") bind.execute(user_project_table.update().values(role=user_project_table.c.role - 1)) op.alter_column('Project', 'is_confidential', nullable=False, server_default="FALSE", new_column_name='is_protected') bind.execute(f'''UPDATE "Project" SET is_deleted = TRUE where is_confidential is TRUE''')