将 alembic 与 Azure Synapse SQL DW 一起使用的问题
Posted
技术标签:
【中文标题】将 alembic 与 Azure Synapse SQL DW 一起使用的问题【英文标题】:Issue with using alembic with Azure Synapse SQL DW 【发布时间】:2021-11-20 15:17:36 【问题描述】:我正在尝试为 Azure Synapse DW 创建 Alembic 迁移。我不断收到以下错误:
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]111214;An attempt to complete a transaction has failed. No corresponding transaction found.
alembic.ini
文件中我的连接字符串是:
sqlalchemy.url = mssql+pyodbc:///?odbc_connect=Driver=ODBC Driver 17 for SQL Server;Server=tcp:host,1433;Database=database;Uid=sqladminuser;Pwd=Password;Encrypt=yes;TrustServerCertificate=no;Connection+Timeout=30;
我正在尝试迁移的版本:
def upgrade():
op.create_table(
'test',
sa.Column('id', sa.Integer, primary_key=True),
sa.Column('description', sa.String, nullable=False),
sa.Column('source_type', sa.String, nullable=False),
sa.Column('source_schema', sa.String, nullable=False),
sa.Column('source_entity', sa.String, nullable=False),
)
def downgrade():
op.drop_table('test')
【问题讨论】:
相关:github.com/sqlalchemy/sqlalchemy/issues/7065 【参考方案1】:我按照 Gord 在 cmets 中提供的 github 链接解决了这个问题。我通过 sqlalchemy.url 更新为
mssql+pyodbc://user:password@host/server:1433/db?autocommit=True&driver=ODBC+Driver+17+for+SQL+Server
【讨论】:
以上是关于将 alembic 与 Azure Synapse SQL DW 一起使用的问题的主要内容,如果未能解决你的问题,请参考以下文章
Azure Synapse 管道:如何将增量更新从 SQL Server 移动到 Synapse 以处理数字
使用 ADF 将 azure blob 文件复制到 azure synapse