Conversation
SQLAlchemy 2.1 made bare postgresql:// resolve to psycopg 3, which no service installs; every consumer uses psycopg2.
- Dockerfile.airflow: base image 3.3.2, apache-airflow pinned in the same pip install so service deps cannot move it. - docker-compose: webserver -> api-server, add dag-processor, FAB auth manager, shared JWT/session secrets and the execution API URL. The metadata DB DSN now comes from .env instead of a hardcoded superuser password. Only logs are a volume, so image DAG updates take effect. - DAG imports move to airflow.sdk. - SQLAlchemy >=2.0,<3 (Airflow 3 requires 2.x); db_models uses the 2.0-compatible declarative_base import.
pranavb05
force-pushed
the
data-ngin/airflow-3
branch
from
October 6, 2026 01:30
cf0fa3b to
c1acba0
Compare
Contributor
Author
|
Moving this to the standalone AlgoGators/data-ngin repo, which is what the algocloud box deploys from. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Airflow 2 is end-of-life; this moves the data-ngin Airflow image and compose stack to 3.3.2.
Dockerfile.airflow: baseapache/airflow:3.3.2-python3.11;apache-airflow==3.3.2is pinned in the samepip installso a service dependency can't silently move Airflow (this is what surfaced the SQLAlchemy conflict below).docker-compose.ymlrewritten for Airflow 3:airflow-webserver→airflow-api-server; newairflow-dag-processor.AIRFLOW_JWT_SECRET/AIRFLOW_SECRET_KEYandEXECUTION_API_SERVER_URL.postgressuperuser DSN:AIRFLOW_DB_CONNnow comes from.env. The password is still in git history and should be rotated./opt/airflow/logsis a volume. Mounting all of/opt/airflowmeant DAGs baked into the image were shadowed by the volume's first-run copy.airflow.sdk.>=2.0,<3(was<2.0; Airflow 3 requires 2.x). The only SQLAlchemy code isdb_models.py, which now uses the 2.0-compatibledeclarative_baseimport. The workspace lock goes to 2.1.3.platform_db:DatabaseConfig.url()usespostgresql+psycopg2://, because SQLAlchemy 2.1 made barepostgresql://mean psycopg 3.Not yet deployable as-is
DATA_NGIN_CONFIG_PATH(/opt/airflow/data_engine/...) and the contracts CSVs match the standalone repo's layout on the box, not this image. Triggered tasks fail withConfiguration file not found. This predates the PR: the monorepo Airflow stack has never been deployed.airflow_metadataschema before runningairflow db migrateagainst prod..envneedsAIRFLOW_JWT_SECRETandAIRFLOW_SECRET_KEY(openssl rand -hex 32).AlgoGators/data-nginhas an earlier, unmerged Airflow 3.1 migration (feat/airflow-3-sqlalchemy-2-migration); reconcile with that work before cutting over.Test plan
just lint/typecheck/teston data-ngin, platform/db, research-api and libs/algosystemairflow versionreports 3.3.2, FAB provider installed