Airflow配置PostgreSQL后执行airflow db init仍用SQLite问题排查咨询
Airflow配置PostgreSQL后仍默认使用SQLite的遗漏配置步骤排查
核心原因
你的修改没有被Airflow实际加载生效,从以下几个维度逐一排查:
- 确认配置文件读取路径正确
Airflow默认从AIRFLOW_HOME环境变量对应的目录下加载airflow.cfg,执行命令echo $AIRFLOW_HOME,检查输出的路径是否和你修改的airflow.cfg所在目录一致。如果不一致,要么将修改后的配置文件移动到该目录下,要么执行export AIRFLOW_HOME=你的配置文件所在目录临时生效,如需永久生效可以将该export命令写入~/.bashrc或~/.zshrc中。 - 确认配置项没有重复冲突
很多用户修改配置时会直接在文件末尾追加sql_alchemy_conn配置,没有注释掉默认自带的sqlite对应配置行,Airflow会优先读取靠前的配置项,导致自定义的PostgreSQL配置不生效。打开airflow.cfg搜索sql_alchemy_conn,确认默认的sqlite配置行前已经加了#注释,仅保留你添加的PostgreSQL配置行。 - 确认PostgreSQL驱动已安装
你配置的连接串使用psycopg2作为PostgreSQL驱动,如果没有安装该依赖,Airflow会自动 fallback 到默认的SQLite数据库。执行命令pip list | grep psycopg2检查是否安装,无输出的话执行pip install psycopg2-binary安装驱动。 - 确认无环境变量覆盖配置
Airflow支持通过环境变量覆盖配置文件的设置,优先级高于配置文件。分别执行命令echo $AIRFLOW__CORE__SQL_ALCHEMY_CONN、echo $AIRFLOW__DATABASE__SQL_ALCHEMY_CONN,如果有输出且为SQLite连接地址,执行unset AIRFLOW__CORE__SQL_ALCHEMY_CONN、unset AIRFLOW__DATABASE__SQL_ALCHEMY_CONN清空对应环境变量。
验证方法
完成上述排查后,执行命令airflow config get-value core sql_alchemy_conn,如果输出为你配置的PostgreSQL连接串,说明配置已生效,再执行airflow db init即可初始化PostgreSQL数据库。
内容的提问来源于stack exchange,提问作者Tristan Tran
相关产品推荐
相关产品推荐

