From 318ecc7753a8af1c2a9b90b83150a884febead9a Mon Sep 17 00:00:00 2001 From: Wei Lee Date: Mon, 28 Oct 2024 09:48:28 +0800 Subject: [PATCH] This PR resolves an SQLAlchemy warning in the migration by correctly setting the `alias_id` column as part of the primary key in the `dag_schedule_dataset_alias_reference` table. Previously, only dag_id was marked as the primary key, causing a mismatch with the local definition, which triggered an SAWarning. Example: https://github.com/apache/airflow/actions/runs/11526187767/job/32090094094?pr=43243#step:6:745 When running a migration you see this. It was missed in https://github.com/apache/airflow/pull/41264: ``` /opt/airflow/airflow/migrations/versions/0026_2_10_0_dag_schedule_dataset_alias_reference.py:46 SAWarning: Table 'dag_schedule_dataset_alias_reference' specifies columns 'dag_id' as primary_key=True, not matching locally specified columns 'alias_id', 'dag_id'; setting the current primary key columns to 'alias_id', 'dag_id'. This warning may become an exception in a future release ``` It is already a primary key in models: https://github.com/apache/airflow/blob/e9192f5db32e453f150c73ad31287d4953e3c43d/airflow/models/asset.py#L290-L291 Kaxil verified that both columns are marked as primary keys already in 2.10. --- .../0151_2_10_0_dag_schedule_dataset_alias_reference.py | 2 +- docs/apache-airflow/img/airflow_erd.sha256 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/airflow/migrations/versions/0151_2_10_0_dag_schedule_dataset_alias_reference.py b/airflow/migrations/versions/0151_2_10_0_dag_schedule_dataset_alias_reference.py index a577a3eb78138..a1a36b39705d1 100644 --- a/airflow/migrations/versions/0151_2_10_0_dag_schedule_dataset_alias_reference.py +++ b/airflow/migrations/versions/0151_2_10_0_dag_schedule_dataset_alias_reference.py @@ -45,7 +45,7 @@ def upgrade(): """Add dag_schedule_dataset_alias_reference table.""" op.create_table( "dag_schedule_dataset_alias_reference", - sa.Column("alias_id", sa.Integer(), nullable=False), + sa.Column("alias_id", sa.Integer(), primary_key=True, nullable=False), sa.Column("dag_id", StringID(), primary_key=True, nullable=False), sa.Column("created_at", airflow.utils.sqlalchemy.UtcDateTime(timezone=True), nullable=False), sa.Column("updated_at", airflow.utils.sqlalchemy.UtcDateTime(timezone=True), nullable=False), diff --git a/docs/apache-airflow/img/airflow_erd.sha256 b/docs/apache-airflow/img/airflow_erd.sha256 index 96c9ea1c16fd4..9ecc324f73ae6 100644 --- a/docs/apache-airflow/img/airflow_erd.sha256 +++ b/docs/apache-airflow/img/airflow_erd.sha256 @@ -1 +1 @@ -3009a8ae271c281d59ada514c7181f1be4f0e2c6ba37148d4d5bf57502edf1d1 \ No newline at end of file +f240c081c0e69e9c213b887cab50dc1b61e4a71010fcc2f177ab9e22adef229f \ No newline at end of file