60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
"""add three-way media policy
|
|
|
|
Revision ID: 583cdac8eba1
|
|
Revises: 7e255d4ea34d
|
|
Create Date: 2017-12-28 00:46:56.023649
|
|
|
|
"""
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = '583cdac8eba1'
|
|
down_revision = '7e255d4ea34d'
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
transitional = sa.table('accounts',
|
|
sa.column('policy_keep_media'),
|
|
sa.column('old_policy_keep_media'))
|
|
|
|
|
|
|
|
def upgrade():
|
|
ThreeWayPolicyEnum = sa.Enum('keeponly', 'deleteonly', 'none',
|
|
name='enum_3way_policy')
|
|
op.execute("""
|
|
CREATE TYPE enum_3way_policy AS ENUM ('keeponly', 'deleteonly', 'none')
|
|
""")
|
|
op.alter_column('accounts', 'policy_keep_media',
|
|
new_column_name='old_policy_keep_media')
|
|
op.add_column(
|
|
'accounts',
|
|
sa.Column('policy_keep_media', ThreeWayPolicyEnum,
|
|
nullable=False, server_default='none'))
|
|
|
|
op.execute(transitional.update()
|
|
.where(transitional.c.old_policy_keep_media)
|
|
.values(policy_keep_media=op.inline_literal('keeponly')))
|
|
|
|
op.drop_column('accounts', 'old_policy_keep_media')
|
|
|
|
|
|
def downgrade():
|
|
op.alter_column('accounts', 'policy_keep_media',
|
|
new_column_name='old_policy_keep_media')
|
|
op.add_column(
|
|
'accounts',
|
|
sa.Column('policy_keep_media', sa.Boolean(),
|
|
nullable=False, server_default='f'))
|
|
|
|
op.execute(transitional.update()
|
|
.where(transitional.c.old_policy_keep_media == op.inline_literal('keeponly'))
|
|
.values(policy_keep_media=op.inline_literal('t')))
|
|
|
|
op.drop_column('accounts', 'old_policy_keep_media')
|
|
op.execute("""
|
|
DROP TYPE enum_3way_policy
|
|
""")
|