diff options
Diffstat (limited to 'contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py')
-rwxr-xr-x | contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py b/contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py new file mode 100755 index 000000000..51e8fa9ca --- /dev/null +++ b/contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py @@ -0,0 +1,61 @@ +"""Fix tos and cos field types + +Revision ID: 4c573e7135bd +Revises: 21e526ad3040 +Create Date: 2014-03-05 12:16:56.618630 + +""" + +# revision identifiers, used by Alembic. +revision = '4c573e7135bd' +down_revision = '21e526ad3040' + +from alembic import op +from alembic import context +import sqlalchemy as sa +from sqlalchemy.dialects.postgresql import ENUM + +YESNO_NAME = 'yesno_values' +YESNO_VALUES = ['yes', 'no'] + +def upgrade(): + op.alter_column('ps_endpoints', 'tos_audio', + type_=sa.String(10)) + op.alter_column('ps_endpoints', 'tos_video', + type_=sa.String(10)) + op.alter_column('ps_transports', 'tos', + type_=sa.String(10)) + + # Can't cast YENO_VALUES to Integers, so dropping and adding is required + op.drop_column('ps_endpoints', 'cos_audio') + op.drop_column('ps_endpoints', 'cos_video') + op.drop_column('ps_transports', 'cos') + + op.add_column('ps_endpoints', sa.Column('cos_audio', sa.Integer)) + op.add_column('ps_endpoints', sa.Column('cos_video', sa.Integer)) + op.add_column('ps_transports', sa.Column('cos', sa.Integer)) + pass + + +def downgrade(): + + yesno_values = ENUM(*YESNO_VALUES, name=YESNO_NAME, create_type=False) + + # Can't cast string to YESNO_VALUES, so dropping and adding is required + op.drop_column('ps_endpoints', 'tos_audio') + op.drop_column('ps_endpoints', 'tos_video') + op.drop_column('ps_transports', 'tos') + + op.add_column('ps_endpoints', sa.Column('tos_audio', yesno_values)) + op.add_column('ps_endpoints', sa.Column('tos_video', yesno_values)) + op.add_column('ps_transports', sa.Column('tos', yesno_values)) + + # Can't cast integers to YESNO_VALUES, so dropping and adding is required + op.drop_column('ps_endpoints', 'cos_audio') + op.drop_column('ps_endpoints', 'cos_video') + op.drop_column('ps_transports', 'cos') + + op.add_column('ps_endpoints', sa.Column('cos_audio', yesno_values)) + op.add_column('ps_endpoints', sa.Column('cos_video', yesno_values)) + op.add_column('ps_transports', sa.Column('cos', yesno_values)) + pass |