diff options
author | Florian Floimair <f.floimair@commend.com> | 2017-09-05 18:13:19 +0200 |
---|---|---|
committer | Kevin Harwell <kharwell@digium.com> | 2017-09-08 11:48:00 -0500 |
commit | ad606844bec37c3c782580ff807e2d2f2d23feb2 (patch) | |
tree | abdc5bb99ddffbb8a2ed0733cdbb8eb12fda9a25 /contrib/ast-db-manage/env.py | |
parent | 9a366d24242a0fc1e7d04b8859ac5773193aa932 (diff) |
alembic: Add support for MS-SQL
MS-SQL has no native Enum-type support and therefore
needs to work with constraints.
Since these constraints need unique names the suggested approach
referenced in the following alembic documentation has been applied:
http://bit.ly/2x9r8pb
ASTERISK-27255 #close
Change-Id: I4a399ba3eed41a33ce8cb294968ad340221580ee
Diffstat (limited to 'contrib/ast-db-manage/env.py')
-rw-r--r-- | contrib/ast-db-manage/env.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/contrib/ast-db-manage/env.py b/contrib/ast-db-manage/env.py index a903451b4..186423913 100644 --- a/contrib/ast-db-manage/env.py +++ b/contrib/ast-db-manage/env.py @@ -2,7 +2,8 @@ from __future__ import with_statement from alembic import context from alembic.script import ScriptDirectory from alembic.operations import Operations -from sqlalchemy import engine_from_config, pool +from sqlalchemy import engine_from_config, pool, MetaData +from sqlalchemy.ext.declarative import declarative_base from logging.config import fileConfig import logging @@ -17,12 +18,24 @@ try: except: pass +## below block is needed for mssql +meta = MetaData(naming_convention = { + "ix": 'ix_%(column_0_label)s', + "uq": "uq_%(table_name)s_%(column_0_name)s", + "ck": "ck_%(table_name)s_%(column_0_name)s_%(constraint_name)s", + "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s", + "pk": "pk_%(table_name)s" +}) +Base = declarative_base(metadata=meta) + logger = logging.getLogger('alembic.runtime.setup') # add your model's MetaData object here # for 'autogenerate' support # from myapp import mymodel # target_metadata = mymodel.Base.metadata target_metadata = None +#Comment above line and uncomment below line for mssql +#target_metadata = Base.metadata # other values from the config, defined by the needs of env.py, # can be acquired: @@ -42,7 +55,7 @@ def run_migrations_offline(): """ url = config.get_main_option("sqlalchemy.url") - context.configure(url=url) + context.configure(url=url,target_metadata=target_metadata) with context.begin_transaction(): context.run_migrations() |