This is an automated email from the ASF dual-hosted git repository.
dstandish pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 42024188b95 Remove dag_code records with no serdag (#49478)
42024188b95 is described below
commit 42024188b9553dd50072e717af754cb95c901972
Author: Daniel Standish <[email protected]>
AuthorDate: Mon Apr 21 11:38:14 2025 -0700
Remove dag_code records with no serdag (#49478)
It is assumed by the migration process that there will not be any dag_code
records that don't have a serdag record.
It seems this only happens when there are two files with the same dag id.
---------
Co-authored-by: Tzu-ping Chung <[email protected]>
---
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/installation/upgrading_to_airflow3.rst | 5 +++++
.../src/airflow/migrations/versions/0047_3_0_0_add_dag_versioning.py | 3 +++
3 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/airflow-core/docs/img/airflow_erd.sha256
b/airflow-core/docs/img/airflow_erd.sha256
index 33fe09fd943..5ec0d8e84d1 100644
--- a/airflow-core/docs/img/airflow_erd.sha256
+++ b/airflow-core/docs/img/airflow_erd.sha256
@@ -1 +1 @@
-bc93e7288a7a8355b15dc721accaf80260f370f3afa0d478248f9fe4692a1f1d
\ No newline at end of file
+2a3ce828be7c3800cb61de4c081fcf46f1f94e31ac732f831e65a8a9581b5bb0
\ No newline at end of file
diff --git a/airflow-core/docs/installation/upgrading_to_airflow3.rst
b/airflow-core/docs/installation/upgrading_to_airflow3.rst
index e30a0a41039..29ca6cbad2e 100644
--- a/airflow-core/docs/installation/upgrading_to_airflow3.rst
+++ b/airflow-core/docs/installation/upgrading_to_airflow3.rst
@@ -41,6 +41,11 @@ Step 2: Clean and back up your existing Airflow Instance
upgrade process. These schema changes can take a long time if the database
is large. For a faster, safer migration, we recommend that you clean up your
Airflow meta-database before the upgrade.
You can use the ``airflow db clean`` :ref:`Airflow CLI
command<cli-db-clean>` to trim your Airflow database.
+- Ensure that there are no errors related to dag processing, such as
``AirflowDagDuplicatedIdException``. You should
+ be able to run ``airflow dags reserialize`` with no errors. If you have
have to resolve errors from dag processing,
+ ensure you deploy your changes to your old instance prior to upgrade, and
wait until your dags have all been reprocessed
+ (and all errors gone) before you proceed with upgrade.
+
Step 3: DAG Authors - Check your Airflow DAGs for compatibility
----------------------------------------------------------------
diff --git
a/airflow-core/src/airflow/migrations/versions/0047_3_0_0_add_dag_versioning.py
b/airflow-core/src/airflow/migrations/versions/0047_3_0_0_add_dag_versioning.py
index bd0a8ea725f..b6b08632f9f 100644
---
a/airflow-core/src/airflow/migrations/versions/0047_3_0_0_add_dag_versioning.py
+++
b/airflow-core/src/airflow/migrations/versions/0047_3_0_0_add_dag_versioning.py
@@ -66,6 +66,9 @@ def _airflow_2_fileloc_hash(fileloc):
def upgrade():
"""Apply add dag versioning."""
conn = op.get_bind()
+
+ op.execute("DELETE FROM dag_code WHERE fileloc_hash NOT IN (SELECT
fileloc_hash FROM serialized_dag)")
+
op.create_table(
"dag_version",
sa.Column("id", UUIDType(binary=False), nullable=False),