You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
asterisk/contrib/ast-db-manage/config/versions/31cd4f4891ec_add_auto_dtmf_...

59 lines
1.9 KiB

"""Add auto DTMF mode
Revision ID: 31cd4f4891ec
Revises: 23530d604b96
Create Date: 2015-04-10 12:36:51.619419
"""
# revision identifiers, used by Alembic.
revision = '31cd4f4891ec'
down_revision = '23530d604b96'
from alembic import op
from sqlalchemy.dialects.postgresql import ENUM
import sqlalchemy as sa
OLD_ENUM = ['rfc4733', 'inband', 'info']
NEW_ENUM = ['rfc4733', 'inband', 'info', 'auto']
old_type = sa.Enum(*OLD_ENUM, name='pjsip_dtmf_mode_values')
new_type = sa.Enum(*NEW_ENUM, name='pjsip_dtmf_mode_values_v2')
def upgrade():
context = op.get_context()
# Upgrading to this revision WILL clear your directmedia values.
if context.bind.dialect.name != 'postgresql':
op.alter_column('ps_endpoints', 'dtmf_mode',
type_=new_type,
existing_type=old_type)
else:
enum = ENUM('rfc4733', 'inband', 'info', 'auto',
name='pjsip_dtmf_mode_values_v2')
enum.create(op.get_bind(), checkfirst=False)
op.execute('ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode TYPE'
' pjsip_dtmf_mode_values_v2 USING'
' dtmf_mode::text::pjsip_dtmf_mode_values_v2')
ENUM(name="pjsip_dtmf_mode_values").drop(op.get_bind(), checkfirst=False)
def downgrade():
context = op.get_context()
if context.bind.dialect.name != 'postgresql':
op.alter_column('ps_endpoints', 'dtmf_mode',
type_=old_type,
existing_type=new_type)
else:
enum = ENUM('rfc4733', 'inband', 'info',
name='pjsip_dtmf_mode_values')
enum.create(op.get_bind(), checkfirst=False)
op.execute('ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode TYPE'
' pjsip_dtmf_mode_values USING'
' dtmf_mode::text::pjsip_dtmf_mode_values')
ENUM(name="pjsip_dtmf_mode_values_v2").drop(op.get_bind(), checkfirst=False)