<gh_stars>0
"""add ArkivuttrekkStatus for transferring to bevaring

Revision ID: 67d1c238323e
Revises: d<PASSWORD>
Create Date: 2022-01-24 16:21:28.178830

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.

revision = '67d1c238323e'
down_revision = 'd28b8226e3bb'
branch_labels = None
depends_on = None

old_options = ('Opprettet', 'Under behandling', 'Avvist', 'Sendt til bevaring', 'Lastet ned')
new_options = sorted(old_options + ('Overføres til bevaring', 'Overføring til bevaring feilet',))

old_type = sa.Enum(*old_options, name='arkivuttrekk_status_type')
new_type = sa.Enum(*new_options, name='arkivuttrekk_status_type')
tmp_type = sa.Enum(*new_options, name='_arkivuttrekk_status_type')

tcr = sa.sql.table('arkivuttrekk', sa.Column('status', new_type, nullable=False))


def upgrade():
    # Create a temporary "_status" type, convert and drop the "old" type
    tmp_type.create(op.get_bind(), checkfirst=False)
    op.alter_column('arkivuttrekk', 'status', type_=tmp_type, postgresql_using='status::text::_arkivuttrekk_status_type')
    old_type.drop(op.get_bind(), checkfirst=False)
    # Create and convert to the "new" type
    new_type.create(op.get_bind(), checkfirst=False)
    op.alter_column('arkivuttrekk', 'status', type_=new_type, postgresql_using='status::text::arkivuttrekk_status_type')
    tmp_type.drop(op.get_bind(), checkfirst=False)


def downgrade():
    # Convert 'Overføres til bevaring' and 'Overføring til bevaring feilet' status into 'Opprettet'
    op.execute(tcr.update().where(tcr.c.status == 'Overføres til bevaring').values(status='Opprettet'))
    op.execute(tcr.update().where(tcr.c.status == 'Overføring til bevaring feilet').values(status='Opprettet'))
    # Create a temporary "_status" type, convert and drop the "new" type
    tmp_type.create(op.get_bind(), checkfirst=False)
    op.alter_column('arkivuttrekk', 'status', type_=tmp_type, postgresql_using='status::text::_arkivuttrekk_status_type')
    new_type.drop(op.get_bind(), checkfirst=False)
    # Create and convert to the "old" status type
    old_type.create(op.get_bind(), checkfirst=False)
    op.alter_column('arkivuttrekk', 'status', type_=old_type, postgresql_using='status::text::arkivuttrekk_status_type')
    tmp_type.drop(op.get_bind(), checkfirst=False)

"""add ArkivuttrekkStatus for transferring to bevaring

Revision ID: 67d1c238323e
Revises: d<PASSWORD>
Create Date: 2022-01-24 16:21:28.178830

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.

revision = '67d1c238323e'
down_revision = 'd28b8226e3bb'
branch_labels = None
depends_on = None

old_options = ('Opprettet', 'Under behandling', 'Avvist', 'Sendt til bevaring', 'Lastet ned')
new_options = sorted(old_options + ('Overføres til bevaring', 'Overføring til bevaring feilet',))

old_type = sa.Enum(*old_options, name='arkivuttrekk_status_type')
new_type = sa.Enum(*new_options, name='arkivuttrekk_status_type')
tmp_type = sa.Enum(*new_options, name='_arkivuttrekk_status_type')

tcr = sa.sql.table('arkivuttrekk', sa.Column('status', new_type, nullable=False))


def upgrade():
    # Create a temporary "_status" type, convert and drop the "old" type
    tmp_type.create(op.get_bind(), checkfirst=False)
    op.alter_column('arkivuttrekk', 'status', type_=tmp_type, postgresql_using='status::text::_arkivuttrekk_status_type')
    old_type.drop(op.get_bind(), checkfirst=False)
    # Create and convert to the "new" type
    new_type.create(op.get_bind(), checkfirst=False)
    op.alter_column('arkivuttrekk', 'status', type_=new_type, postgresql_using='status::text::arkivuttrekk_status_type')
    tmp_type.drop(op.get_bind(), checkfirst=False)


def downgrade():
    # Convert 'Overføres til bevaring' and 'Overføring til bevaring feilet' status into 'Opprettet'
    op.execute(tcr.update().where(tcr.c.status == 'Overføres til bevaring').values(status='Opprettet'))
    op.execute(tcr.update().where(tcr.c.status == 'Overføring til bevaring feilet').values(status='Opprettet'))
    # Create a temporary "_status" type, convert and drop the "new" type
    tmp_type.create(op.get_bind(), checkfirst=False)
    op.alter_column('arkivuttrekk', 'status', type_=tmp_type, postgresql_using='status::text::_arkivuttrekk_status_type')
    new_type.drop(op.get_bind(), checkfirst=False)
    # Create and convert to the "old" status type
    old_type.create(op.get_bind(), checkfirst=False)
    op.alter_column('arkivuttrekk', 'status', type_=old_type, postgresql_using='status::text::arkivuttrekk_status_type')
    tmp_type.drop(op.get_bind(), checkfirst=False)
add ArkivuttrekkStatus for transferring to bevaring  Revision ID: 67d1c238323e Revises: d<PASSWORD> Create Date: 2022-01-24 16:21:28.178830 # revision identifiers, used by Alembic. # Create a temporary "_status" type, convert and drop the "old" type # Create and convert to the "new" type # Convert 'Overføres til bevaring' and 'Overføring til bevaring feilet' status into 'Opprettet' # Create a temporary "_status" type, convert and drop the "new" type # Create and convert to the "old" status type