]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
alembic/sqlalchemy: auto increment only allowed on a single column 88/3588/1
authorKevin Harwell <kharwell@digium.com>
Tue, 9 Aug 2016 17:07:20 +0000 (12:07 -0500)
committerKevin Harwell <kharwell@digium.com>
Wed, 17 Aug 2016 14:48:33 +0000 (09:48 -0500)
The extensions table defined two columns (id and priority) as primary key
autoincrement columns. However only one is allowed when defining the primary
key.

This patch removes the autoincrement attribute from the priority column since
it does not need to be as such and really should not have been on there in the
first place.

This patch also removes 'context', 'exten', and 'priority' from the primary key
index and creates a new combined unique contraint index on them.

ASTERISK-26183 #close

Change-Id: Ib9c712c612a4d7ec1edb0dcb77f1bae0905a470b
(cherry picked from commit f6ec94cca66addac71d566d6fa48188b407f26ba)

contrib/ast-db-manage/config/versions/581a4264e537_adding_extensions.py

index ecee0e04efdb8b17ec3c8d74b45dede3aae9d4fc..415f5bc25c4a1254785a7af6bb0c61aa16755541 100755 (executable)
@@ -31,20 +31,18 @@ down_revision = '43956d550a44'
 from alembic import op
 import sqlalchemy as sa
 
-
 def upgrade():
     op.create_table(
         'extensions',
         sa.Column('id', sa.BigInteger, primary_key=True, nullable=False,
                   unique=True, autoincrement=True),
-        sa.Column('context', sa.String(40), primary_key=True, nullable=False),
-        sa.Column('exten', sa.String(40), primary_key=True, nullable=False),
-        sa.Column('priority', sa.Integer, primary_key=True, nullable=False,
-                  autoincrement=True),
+        sa.Column('context', sa.String(40), nullable=False),
+        sa.Column('exten', sa.String(40), nullable=False),
+        sa.Column('priority', sa.Integer, nullable=False),
         sa.Column('app', sa.String(40), nullable=False),
         sa.Column('appdata', sa.String(256), nullable=False),
+        sa.UniqueConstraint('context', 'exten', 'priority')
     )
 
-
 def downgrade():
     op.drop_table('extensions')