Airflow db migrate报错:SqlAlchemySessionInterface缺少必填参数
解决Airflow 2.7.3数据库初始化时的SqlAlchemySessionInterface参数错误
问题原因
这个错误是由于Flask-Session版本与Airflow 2.7.3不兼容导致的。新版Flask-Session(0.6.0及以上)对SqlAlchemySessionInterface的初始化参数做了大幅调整,而Airflow 2.7.3的代码仍沿用旧版参数调用方式,从而触发参数缺失的TypeError。
解决方案
方案1:锁定Flask-Session兼容版本
在CI/CD安装步骤中添加指定版本的命令,强制安装Airflow 2.7.3兼容的Flask-Session版本:
- apt update -y - pip install --upgrade pip - pip install apache-airflow==2.7.3 # 新增:安装兼容的Flask-Session版本 - pip install flask-session<0.6.0 - export PATH=/root/.local/bin/:$PATH - export AIRFLOW_HOME=/root/airflow - airflow db migrate - airflow variables import environments/local.json - python3 -m pytest -s dags/
注意:将
export AIRFLOW_HOME移到airflow db migrate之前,确保Airflow读取正确的配置路径。
方案2:使用Airflow官方约束文件安装
Airflow官方为每个版本提供依赖约束文件,自动确保所有依赖版本兼容,避免冲突:
- apt update -y - pip install --upgrade pip # 使用对应Python版本的官方约束文件安装Airflow - pip install apache-airflow==2.7.3 --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.7.3/constraints-3.11.txt" - export PATH=/root/.local/bin/:$PATH - export AIRFLOW_HOME=/root/airflow - airflow db migrate - airflow variables import environments/local.json - python3 -m pytest -s dags/
约束文件URL中的
3.11对应Python版本,需根据CI环境的Python版本调整(比如3.10则改为constraints-3.10.txt)。
方案3:清理依赖缓存(针对有缓存的CI环境)
如果CI环境存在依赖缓存,可能残留不兼容版本,需清理后重新安装:
# 清理pip缓存 - pip cache purge # 执行方案1或方案2的安装步骤
内容的提问来源于stack exchange,提问作者Lorenzo Ventura
相关产品推荐
相关产品推荐

