Airflow 气流-运行sql过程(sql Server)

Airflow 气流-运行sql过程(sql Server),airflow,Airflow,我正在从UI手动触发任务,它将任务显示为成功,但数据库中什么也没有发生。基本上,我调用的是一个简单的过程(没有参数),它将值从staging表复制到main并删除staging表中的内容 from airflow import DAG from airflow.operators.mssql_operator import MsSqlOperator from datetime import datetime dag = DAG("sql_proc_0", "Testing running o

我正在从UI手动触发任务,它将任务显示为成功,但数据库中什么也没有发生。基本上,我调用的是一个简单的过程(没有参数),它将值从staging表复制到main并删除staging表中的内容

from airflow import DAG
from airflow.operators.mssql_operator import MsSqlOperator
from datetime import datetime

dag = DAG("sql_proc_0", "Testing running of SQL procedures",
          schedule_interval = None, catchup = False,
          start_date = datetime(2019, 1, 1))

# [dbo].[LoadData] is the name of the procedure
sql_command = """ 
EXECUTE [dbo].[LoadData] 
"""

task = MsSqlOperator(task_id = 'run_test_proc', mssql_conn_id = 'mssql_azure_test',
                     sql = sql_command, dag = dag, database = 'TestDB')

基本上默认设置为
auto_commit=False
。当它被设置为
True
时,它就可以工作了(我花了2个小时才弄明白这一点,然后在SO中发布了它!)

task = MsSqlOperator(task_id='run_test_proc',mssql_conn_id='mssql_azure_test',
                     sql=sql_command,dag=dag,
                     database='TestDB', 
                     auto_commit=True)