修改Airflow DAG ID后仍显示旧ID的问题求助
问题排查与解决步骤
1. 确认Airflow实际读取的DAG目录
你的DAG文件存放在自定义目录,但Airflow可能仍在读取默认目录或Docker残留目录:
- 执行命令
airflow config get-value core dags_folder,查看当前Airflow配置的DAG目录,确认是否为你的自定义项目目录。 - 若不符,修改配置:
- 通过
airflow config get-value core config_file找到虚拟环境下的airflow.cfg路径 - 编辑该文件,将
dags_folder值改为你的自定义项目目录路径,保存后重启Airflow webserver和scheduler服务。
- 通过
2. 清理Docker残留的DAG文件
你之前用Docker Compose安装过Airflow,容器或卷中可能残留旧tutorial DAG文件:
- 停止并彻底删除Airflow相关Docker容器与卷:
docker-compose down -v - 检查之前Docker挂载的DAG目录(比如
./dags),若存在tutorial.py直接删除。
3. 彻底清除数据库中的旧DAG记录
airflow db clean可能未彻底清理旧记录,尝试以下操作:
- 停止所有Airflow服务(webserver、scheduler、worker)
- 执行
airflow db reset(注意:此操作会清空整个Airflow数据库,有重要数据请先备份) - 重新初始化数据库:
airflow db init - 重启Airflow服务后检查DAG列表。
4. 检查自定义DAG文件的正确性
确保新DAG文件无旧ID引用:
- 打开新DAG文件,确认
dag_id确实为completelynewp,无拼写错误 - 检查文件中是否存在导入或引用旧
tutorialDAG的代码(比如from airflow.example_dags.tutorial import ...),如有则删除。
5. 确认操作的是虚拟环境的Airflow实例
系统中可能存在多个Airflow实例,需确保操作的是虚拟环境版本:
- 执行
which airflow,确认输出为虚拟环境目录下的airflow可执行文件(如~/venv/bin/airflow) - 若不是,先激活虚拟环境:Linux/Mac执行
source 虚拟环境目录/bin/activate,Windows执行虚拟环境目录\Scripts\activate
内容的提问来源于stack exchange,提问作者Geoffrey Johnen
相关产品推荐
相关产品推荐

