mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-24 01:11:38 -05:00
Merge pull request #731 from alphagov/letter-templates-db
Add letter to possible template types in DB
This commit is contained in:
56
migrations/versions/0059_add_letter_template_type.py
Normal file
56
migrations/versions/0059_add_letter_template_type.py
Normal file
@@ -0,0 +1,56 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: f266fb67597a
|
||||
Revises: 0058_add_letters_flag
|
||||
Create Date: 2016-11-07 16:13:18.961527
|
||||
|
||||
"""
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '0059_add_letter_template_type'
|
||||
down_revision = '0058_add_letters_flag'
|
||||
|
||||
|
||||
name = 'template_type'
|
||||
tmp_name = 'tmp_' + name
|
||||
|
||||
old_options = ('sms', 'email')
|
||||
new_options = old_options + ('letter',)
|
||||
|
||||
new_type = sa.Enum(*new_options, name=name)
|
||||
old_type = sa.Enum(*old_options, name=name)
|
||||
|
||||
tcr = sa.sql.table(
|
||||
'templates',
|
||||
sa.Column('template_type', new_type, nullable=False)
|
||||
)
|
||||
|
||||
|
||||
def upgrade():
|
||||
op.execute('ALTER TYPE ' + name + ' RENAME TO ' + tmp_name)
|
||||
|
||||
new_type.create(op.get_bind())
|
||||
op.execute(
|
||||
'ALTER TABLE templates ALTER COLUMN template_type ' +
|
||||
'TYPE ' + name + ' USING template_type::text::' + name
|
||||
)
|
||||
op.execute('DROP TYPE ' + tmp_name)
|
||||
|
||||
|
||||
def downgrade():
|
||||
# Convert 'letter' template into 'email'
|
||||
op.execute(
|
||||
tcr.update().where(tcr.c.template_type=='letter').values(template_type='email')
|
||||
)
|
||||
|
||||
op.execute('ALTER TYPE ' + name + ' RENAME TO ' + tmp_name)
|
||||
|
||||
old_type.create(op.get_bind())
|
||||
op.execute(
|
||||
'ALTER TABLE templates ALTER COLUMN template_type ' +
|
||||
'TYPE ' + name + ' USING template_type::text::' + name
|
||||
)
|
||||
op.execute('DROP TYPE ' + tmp_name)
|
||||
Reference in New Issue
Block a user