alembic: Fix enum creation for dtls_fingerprint
[asterisk/asterisk.git] / contrib / ast-db-manage / config / versions / b83645976fdd_add_dtls_fingerprint_to_ps_endpoints.py
1 """add dtls_fingerprint to ps_endpoints
2
3 Revision ID: b83645976fdd
4 Revises: f3d1c5d38b56
5 Create Date: 2017-08-03 09:01:49.558111
6
7 """
8
9 # revision identifiers, used by Alembic.
10 revision = 'b83645976fdd'
11 down_revision = 'f3d1c5d38b56'
12
13 from alembic import op
14 import sqlalchemy as sa
15 from sqlalchemy.dialects.postgresql import ENUM
16
17 SHA_HASH_NAME = 'sha_hash_values'
18 SHA_HASH_VALUES = ['SHA-1', 'SHA-256']
19
20 def upgrade():
21     context = op.get_context()
22
23     if context.bind.dialect.name == 'postgresql':
24         enum = ENUM(*SHA_HASH_VALUES, name=SHA_HASH_NAME)
25         enum.create(op.get_bind(), checkfirst=False)
26
27     op.add_column('ps_endpoints',
28              sa.Column('dtls_fingerprint', ENUM(*SHA_HASH_VALUES,
29                  name=SHA_HASH_NAME, create_type=False)))
30
31 def downgrade():
32     context = op.get_context()
33
34     op.drop_column('ps_endpoints', 'dtls_fingerprint')
35
36     if context.bind.dialect.name == 'postgresql':
37         enum = ENUM(*SHA_HASH_VALUES, name=SHA_HASH_NAME)
38         enum.drop(op.get_bind(), checkfirst=False)