给上千套工作流换“大脑”,最怕的不是升级软件,而是藏在代码里的旧写法一起失效。一位数据工程师近日在 Reddit 求助:如何把运行于 Airflow 2.10 的数千条 DAG 迁到 3.2,并批量找出导入语句等兼容问题。DAG 是任务及先后关系的定义,例如清洗必须等数据抽取完成。
据 Apache Airflow 文档,Airflow 3 属于包含破坏性变化的重大升级。可先用基于 Ruff 的 AIR30x 规则做静态扫描——不运行任务,只检查代码结构;它能发现部分旧导入、参数名和上下文变量,其中一些还能自动修复。核心对象应逐步迁到稳定接口 airflow.sdk;常用 operator、sensor 和 hook 若已移入 provider 包,可借助同时兼容 2.x 与 3.x 的 providers-standard 提前改造测试。
配置可用 airflow config update 和 airflow config lint 检查,数据库升级则用 airflow db migrate。这套办法适合先筛出共性问题,再隔离试跑、分批迁移;但原帖没有披露实际扫描结果或成功率。