Airflow从1.10.15升级至2.6.0后初始化DB遇SQLAlchemy错误
解决Airflow从1.10.15升级到2.6.0后
airflow db init报错问题 错误根源
报错sqlalchemy.exc.ArgumentError: Invalid value for 'executemany_mode': 'values'的核心原因有两个:
- SQLAlchemy版本不兼容:Airflow 2.6.0要求SQLAlchemy版本在
>=1.4.36,<2.0区间。若安装了SQLAlchemy 2.x,其PostgreSQL dialect已移除'values'这个executemany_mode选项。 - 配置参数过时:如果Airflow配置中手动设置了
executemany_mode: 'values',该值在新版本SQLAlchemy中已被废弃。
解决步骤
1. 修正SQLAlchemy版本到兼容范围
执行命令强制安装符合Airflow 2.6.0要求的SQLAlchemy版本:
pip install "sqlalchemy>=1.4.36,<2.0" --force-reinstall
2. 清理或更新Airflow配置中的过时参数
- 打开Airflow配置文件
airflow.cfg - 找到
sql_alchemy_connect_args配置项,检查是否包含executemany_mode: 'values':- 若存在,直接删除该参数;或者替换为SQLAlchemy支持的有效值(如
'batch')
- 若存在,直接删除该参数;或者替换为SQLAlchemy支持的有效值(如
- 保存配置后重新执行初始化命令
3. 检查数据库连接URL的附加参数
如果你的sql_alchemy_conn连接URL中带有executemany_mode=values这类参数,需将其移除或替换为executemany_mode=batch。
验证操作
完成上述调整后,重新运行:
airflow db init
确认错误是否消除。
内容的提问来源于stack exchange,提问作者Adheeban
相关产品推荐
相关产品推荐

