首页 > 解决方案 > 如何在 Airflow 中将 Postgres 设置为后端数据库?

问题描述

我正在尝试建立 postgres 和气流之间的连接,这是我的 docker-compose

version: '3'
services:
    postgres:
        image: postgres
        environment:
            - POSTGRES_USER=airflow
            - POSTGRES_PASSWORD=airflow
            - POSTGRES_DB=airflow
    webserver:
        image: apache/airflow:1.10.13-python3.6
        command: bash -c "airflow initdb; airflow webserver; airflow scheduler;"
        environment:
            - AIRFLOW_DATABASE_USERNAME=airflow
            - AIRFLOW_DATABASE_PASSWORD=airflow
            - AIRFLOW_DATABASE_NAME=airflow
        volumes:
            - ../airflow/dag:/opt/airflow/dags
        ports:
           - 8080:8080

设置 postgres 配置设置后,它仍然将 SQLite 作为后端数据库。日志如下

ravi@ravi:~/Documents/airflow$ docker-compose up airflow_webserver 
Starting airflow_airflow_webserver_1 ... 
Starting airflow_airflow_webserver_1 ... done
Attaching to airflow_airflow_webserver_1
airflow_webserver_1  | DB: sqlite:////opt/airflow/airflow.db
airflow_webserver_1  | [2020-12-06 12:53:22,911] {db.py:378} INFO - Creating tables
airflow_webserver_1  | INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
airflow_webserver_1  | INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
airflow_webserver_1  | Done.

标签: postgresqlairflow

解决方案


添加以下两个环境变量后,气流现在将后端数据库设为Postgres

AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@postgres/airflow 
AIRFLOW__CORE__EXECUTOR=LocalExecutor

谢谢@elad


推荐阅读