From b3c2f1164b95330daff5a6cf66b943dc2bf36138 Mon Sep 17 00:00:00 2001 From: Kevin Harwell <kharwell@digium.com> Date: Thu, 11 Aug 2016 10:50:09 -0500 Subject: [PATCH] alembic: add auth_username to endpoint's identify_by enum A new identify_by option was added recently, auth_username. However, this setting was not added as an allowable choice in the database enumeration value. This patch updates the current enumeration, adding in the new setting. ASTERISK-26268 #close Change-Id: Ib4788e8485e4cd40172ec0abbf5810a147ab8bf8 --- .../3772f8f828da_update_identify_by.py | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 contrib/ast-db-manage/config/versions/3772f8f828da_update_identify_by.py diff --git a/contrib/ast-db-manage/config/versions/3772f8f828da_update_identify_by.py b/contrib/ast-db-manage/config/versions/3772f8f828da_update_identify_by.py new file mode 100644 index 0000000000..92695b09fc --- /dev/null +++ b/contrib/ast-db-manage/config/versions/3772f8f828da_update_identify_by.py @@ -0,0 +1,44 @@ +"""update_identify_by + +Revision ID: 3772f8f828da +Revises: c7a44a5a0851 +Create Date: 2016-08-11 10:47:29.211063 + +""" + +# revision identifiers, used by Alembic. +revision = '3772f8f828da' +down_revision = 'c7a44a5a0851' + +from alembic import op +import sqlalchemy as sa + + +def enum_update(table_name, column_name, enum_name, enum_values): + if op.get_context().bind.dialect.name != 'postgresql': + op.alter_column(table_name, column_name, + type_=sa.Enum(*enum_values, name=enum_name)) + return + + # Postgres requires a few more steps + tmp = enum_name + '_tmp' + + op.execute('ALTER TYPE ' + enum_name + ' RENAME TO ' + tmp) + + updated = sa.Enum(*enum_values, name=enum_name) + updated.create(op.get_bind(), checkfirst=False) + + op.execute('ALTER TABLE ' + table_name + ' ALTER COLUMN ' + column_name + + ' TYPE ' + enum_name + ' USING identify_by::text::' + enum_name) + + op.execute('DROP TYPE ' + tmp) + + +def upgrade(): + enum_update('ps_endpoints', 'identify_by', 'pjsip_identify_by_values', + ['username', 'auth_username']) + + +def downgrade(): + enum_update('ps_endpoints', 'identify_by', 'pjsip_identify_by_values', + ['username']) -- GitLab