这个错误发生在使用Airflow 1.10版本时,当查询数据库时找不到满足条件的行数据时抛出的异常。下面是一个可能的解决方法:
from airflow.models import DagModel
def get_dag_by_id(dag_id):
try:
dag = session.query(DagModel).filter(DagModel.dag_id == dag_id).one()
return dag
except sqlalchemy.orm.exc.NoResultFound:
return None
在上述代码中,我们使用了DagModel
模型来查询数据库中的DAG,通过filter
方法来设置查询条件,然后通过one()
方法获取结果。如果找不到满足条件的行数据,会抛出NoResultFound
异常。我们使用try-except
块来捕获这个异常,并返回None
值来处理这种情况。
请确保在代码中引入了sqlalchemy.orm.exc.NoResultFound
异常的包:
import sqlalchemy.orm.exc
这样,当使用get_dag_by_id
函数时,如果找不到满足条件的行数据,它将返回None
值,你可以根据需要进行处理。