Airflow已删除的DAG仍显示在列表及数据库中如何彻底删除?
解决Airflow 2.4.2无法删除指定DAG的问题
针对你遇到的twitterQueryParse DAG在列表可见但删除提示不存在、重置数据库也无效的问题,按以下步骤排查解决:
第一步:移除DAG源文件
Airflow会持续扫描$AIRFLOW_HOME/dags目录加载DAG,只要源文件存在,即使清空数据库,DAG也会被重新解析并添加到系统中。先定位并删除对应文件:# 查找DAG文件 find $AIRFLOW_HOME/dags -name "*twitterQueryParse*" # 删除找到的文件 rm -f <上述命令返回的文件路径>第二步:严格匹配DAG ID执行删除
Airflow的DAG ID是大小写敏感的,确保你使用的ID和airflow dags list输出的完全一致。直接复制列表中的ID执行删除:airflow dags delete "复制的精确DAG ID"第三步:手动清理数据库残留记录
如果上述操作后问题依旧,直接操作数据库清除DAG相关的元数据(以PostgreSQL为例,其他数据库语法类似):# 进入Airflow数据库 psql -U <你的Airflow数据库用户名> -d <你的Airflow数据库名>执行以下SQL语句删除所有关联记录:
DELETE FROM dag WHERE dag_id = 'twitterQueryParse'; DELETE FROM dag_run WHERE dag_id = 'twitterQueryParse'; DELETE FROM task_instance WHERE dag_id = 'twitterQueryParse'; DELETE FROM xcom WHERE dag_id = 'twitterQueryParse'; DELETE FROM log WHERE dag_id = 'twitterQueryParse';执行完成后输入
\q退出数据库。第四步:重启Airflow服务
最后重启Airflow的webserver、scheduler(若使用Celery worker也需重启),确保缓存完全刷新:airflow webserver restart airflow scheduler restart # 若使用Celery执行器,重启worker airflow celery worker restart
内容的提问来源于stack exchange,提问作者Rony Armon
相关产品推荐
相关产品推荐

