diff --git a/airflow/migrations/versions/0050_3_0_0_add_dagbundlemodel.py b/airflow/migrations/versions/0050_3_0_0_add_dagbundlemodel.py
index 5322be0abe7634..16e8e91cbe2778 100644
--- a/airflow/migrations/versions/0050_3_0_0_add_dagbundlemodel.py
+++ b/airflow/migrations/versions/0050_3_0_0_add_dagbundlemodel.py
@@ -56,6 +56,9 @@ def upgrade():
with op.batch_alter_table("dag_run", schema=None) as batch_op:
batch_op.add_column(sa.Column("bundle_version", sa.String(length=250), nullable=True))
+ with op.batch_alter_table("import_error", schema=None) as batch_op:
+ batch_op.add_column(sa.Column("bundle_name", sa.String(length=250), nullable=True))
+
def downgrade():
with op.batch_alter_table("dag", schema=None) as batch_op:
@@ -65,4 +68,7 @@ def downgrade():
with op.batch_alter_table("dag_run", schema=None) as batch_op:
batch_op.drop_column("bundle_version")
+ with op.batch_alter_table("import_error", schema=None) as batch_op:
+ batch_op.drop_column("bundle_name")
+
op.drop_table("dag_bundle")
diff --git a/airflow/migrations/versions/0056_3_0_0_add_bundle_name_to_parseimporterror.py b/airflow/migrations/versions/0056_3_0_0_add_bundle_name_to_parseimporterror.py
deleted file mode 100644
index ea110e50b0e454..00000000000000
--- a/airflow/migrations/versions/0056_3_0_0_add_bundle_name_to_parseimporterror.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-"""
-add bundle_name to ParseImportError.
-
-Revision ID: 03de77aaa4ec
-Revises: e39a26ac59f6
-Create Date: 2025-01-08 10:38:02.108760
-
-"""
-
-from __future__ import annotations
-
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = "03de77aaa4ec"
-down_revision = "e39a26ac59f6"
-branch_labels = None
-depends_on = None
-airflow_version = "3.0.0"
-
-
-def upgrade():
- """Apply add bundle_name to ParseImportError."""
- with op.batch_alter_table("import_error", schema=None) as batch_op:
- batch_op.add_column(sa.Column("bundle_name", sa.String(length=250), nullable=True))
-
-
-def downgrade():
- """Unapply add bundle_name to ParseImportError."""
- with op.batch_alter_table("import_error", schema=None) as batch_op:
- batch_op.drop_column("bundle_name")
diff --git a/airflow/utils/db.py b/airflow/utils/db.py
index ed7eb1090416c7..1a1eb6f4d35002 100644
--- a/airflow/utils/db.py
+++ b/airflow/utils/db.py
@@ -94,7 +94,7 @@ class MappedClassProtocol(Protocol):
"2.9.2": "686269002441",
"2.10.0": "22ed7efa9da2",
"2.10.3": "5f2621c13b39",
- "3.0.0": "03de77aaa4ec",
+ "3.0.0": "e39a26ac59f6",
}
diff --git a/docs/apache-airflow/img/airflow_erd.sha256 b/docs/apache-airflow/img/airflow_erd.sha256
index ad7d1b13c19e79..5e4843e2b1882b 100644
--- a/docs/apache-airflow/img/airflow_erd.sha256
+++ b/docs/apache-airflow/img/airflow_erd.sha256
@@ -1 +1 @@
-79449705d667d8fe382b4b53a0c59bf55bf31eeafc34941c59e6dceccc68d7a7
\ No newline at end of file
+32350c3c7d1dd29eca4205458eab946ece6628f7f53d30c4e0a8f1ee914f1372
\ No newline at end of file
diff --git a/docs/apache-airflow/img/airflow_erd.svg b/docs/apache-airflow/img/airflow_erd.svg
index f647786452c6b2..663f30f9c959cf 100644
--- a/docs/apache-airflow/img/airflow_erd.svg
+++ b/docs/apache-airflow/img/airflow_erd.svg
@@ -1047,30 +1047,30 @@
task_instance--task_map
-
+
0..N
-1
+1
task_instance--task_map
-
+
0..N
-1
+1
task_instance--task_map
-
+
0..N
-1
+1
task_instance--task_map
-
+
0..N
-1
+1
@@ -1120,30 +1120,30 @@
task_instance--xcom
-
-0..N
-1
+
+0..N
+1
task_instance--xcom
-
-0..N
-1
+
+0..N
+1
task_instance--xcom
-
-0..N
-1
+
+0..N
+1
task_instance--xcom
-
-0..N
-1
+
+0..N
+1
@@ -1731,41 +1731,41 @@
deadline
-
-deadline
-
-id
-
- [UUID]
- NOT NULL
-
-callback
-
- [VARCHAR(500)]
- NOT NULL
-
-callback_kwargs
-
- [JSON]
-
-dag_id
-
- [VARCHAR(250)]
-
-dagrun_id
-
- [INTEGER]
-
-deadline
-
- [TIMESTAMP]
- NOT NULL
+
+deadline
+
+id
+
+ [UUID]
+ NOT NULL
+
+callback
+
+ [VARCHAR(500)]
+ NOT NULL
+
+callback_kwargs
+
+ [JSON]
+
+dag_id
+
+ [VARCHAR(250)]
+
+dagrun_id
+
+ [INTEGER]
+
+deadline
+
+ [TIMESTAMP]
+ NOT NULL
dag--deadline
-
-0..N
+
+0..N
{0,1}
@@ -1778,104 +1778,108 @@
dag_run
-
-dag_run
-
-id
-
- [INTEGER]
- NOT NULL
-
-backfill_id
-
- [INTEGER]
-
-clear_number
-
- [INTEGER]
- NOT NULL
-
-conf
-
- [JSONB]
-
-creating_job_id
-
- [INTEGER]
-
-dag_id
-
- [VARCHAR(250)]
- NOT NULL
-
-dag_version_id
-
- [UUID]
-
-data_interval_end
-
- [TIMESTAMP]
-
-data_interval_start
-
- [TIMESTAMP]
-
-end_date
-
- [TIMESTAMP]
-
-external_trigger
-
- [BOOLEAN]
-
-last_scheduling_decision
-
- [TIMESTAMP]
-
-log_template_id
-
- [INTEGER]
-
-logical_date
-
- [TIMESTAMP]
- NOT NULL
-
-queued_at
-
- [TIMESTAMP]
-
-run_id
-
- [VARCHAR(250)]
- NOT NULL
-
-run_type
-
- [VARCHAR(50)]
- NOT NULL
-
-start_date
-
- [TIMESTAMP]
-
-state
-
- [VARCHAR(50)]
-
-triggered_by
-
- [VARCHAR(50)]
-
-updated_at
-
- [TIMESTAMP]
+
+dag_run
+
+id
+
+ [INTEGER]
+ NOT NULL
+
+backfill_id
+
+ [INTEGER]
+
+bundle_version
+
+ [VARCHAR(250)]
+
+clear_number
+
+ [INTEGER]
+ NOT NULL
+
+conf
+
+ [JSONB]
+
+creating_job_id
+
+ [INTEGER]
+
+dag_id
+
+ [VARCHAR(250)]
+ NOT NULL
+
+dag_version_id
+
+ [UUID]
+
+data_interval_end
+
+ [TIMESTAMP]
+
+data_interval_start
+
+ [TIMESTAMP]
+
+end_date
+
+ [TIMESTAMP]
+
+external_trigger
+
+ [BOOLEAN]
+
+last_scheduling_decision
+
+ [TIMESTAMP]
+
+log_template_id
+
+ [INTEGER]
+
+logical_date
+
+ [TIMESTAMP]
+ NOT NULL
+
+queued_at
+
+ [TIMESTAMP]
+
+run_id
+
+ [VARCHAR(250)]
+ NOT NULL
+
+run_type
+
+ [VARCHAR(50)]
+ NOT NULL
+
+start_date
+
+ [TIMESTAMP]
+
+state
+
+ [VARCHAR(50)]
+
+triggered_by
+
+ [VARCHAR(50)]
+
+updated_at
+
+ [TIMESTAMP]
dag_version--dag_run
-
-0..N
+
+0..N
{0,1}
@@ -1975,121 +1979,121 @@
dag_run--dagrun_asset_event
-
-0..N
-1
+
+0..N
+1
dag_run--task_instance
-
-0..N
-1
+
+0..N
+1
dag_run--task_instance
-
-0..N
-1
+
+0..N
+1
dag_run--deadline
-
-0..N
-{0,1}
+
+0..N
+{0,1}
backfill_dag_run
-
-backfill_dag_run
-
-id
-
- [INTEGER]
- NOT NULL
-
-backfill_id
-
- [INTEGER]
- NOT NULL
-
-dag_run_id
-
- [INTEGER]
-
-exception_reason
-
- [VARCHAR(250)]
-
-logical_date
-
- [TIMESTAMP]
- NOT NULL
-
-sort_ordinal
-
- [INTEGER]
- NOT NULL
+
+backfill_dag_run
+
+id
+
+ [INTEGER]
+ NOT NULL
+
+backfill_id
+
+ [INTEGER]
+ NOT NULL
+
+dag_run_id
+
+ [INTEGER]
+
+exception_reason
+
+ [VARCHAR(250)]
+
+logical_date
+
+ [TIMESTAMP]
+ NOT NULL
+
+sort_ordinal
+
+ [INTEGER]
+ NOT NULL
dag_run--backfill_dag_run
-
-0..N
-{0,1}
+
+0..N
+{0,1}
dag_run_note
-
-dag_run_note
-
-dag_run_id
-
- [INTEGER]
- NOT NULL
-
-content
-
- [VARCHAR(1000)]
-
-created_at
-
- [TIMESTAMP]
- NOT NULL
-
-updated_at
-
- [TIMESTAMP]
- NOT NULL
-
-user_id
-
- [VARCHAR(128)]
+
+dag_run_note
+
+dag_run_id
+
+ [INTEGER]
+ NOT NULL
+
+content
+
+ [VARCHAR(1000)]
+
+created_at
+
+ [TIMESTAMP]
+ NOT NULL
+
+updated_at
+
+ [TIMESTAMP]
+ NOT NULL
+
+user_id
+
+ [VARCHAR(128)]
dag_run--dag_run_note
-
-1
-1
+
+1
+1
dag_run--task_reschedule
-
-0..N
-1
+
+0..N
+1
dag_run--task_reschedule
-
-0..N
-1
+
+0..N
+1
@@ -2120,9 +2124,9 @@
log_template--dag_run
-
-0..N
-{0,1}
+
+0..N
+{0,1}
@@ -2186,16 +2190,16 @@
backfill--dag_run
-
-0..N
-{0,1}
+
+0..N
+{0,1}
backfill--backfill_dag_run
-
-0..N
-1
+
+0..N
+1
@@ -2315,28 +2319,28 @@
ab_user_role
-
-ab_user_role
-
-id
-
- [INTEGER]
- NOT NULL
-
-role_id
-
- [INTEGER]
-
-user_id
-
- [INTEGER]
+
+ab_user_role
+
+id
+
+ [INTEGER]
+ NOT NULL
+
+role_id
+
+ [INTEGER]
+
+user_id
+
+ [INTEGER]
ab_user--ab_user_role
-
-0..N
-{0,1}
+
+0..N
+{0,1}
@@ -2426,28 +2430,28 @@
ab_permission_view_role
-
-ab_permission_view_role
-
-id
-
- [INTEGER]
- NOT NULL
-
-permission_view_id
-
- [INTEGER]
-
-role_id
-
- [INTEGER]
+
+ab_permission_view_role
+
+id
+
+ [INTEGER]
+ NOT NULL
+
+permission_view_id
+
+ [INTEGER]
+
+role_id
+
+ [INTEGER]
ab_permission_view--ab_permission_view_role
-
-0..N
-{0,1}
+
+0..N
+{0,1}
@@ -2491,16 +2495,16 @@
ab_role--ab_user_role
-
-0..N
-{0,1}
+
+0..N
+{0,1}
ab_role--ab_permission_view_role
-
-0..N
-{0,1}
+
+0..N
+{0,1}
diff --git a/docs/apache-airflow/migrations-ref.rst b/docs/apache-airflow/migrations-ref.rst
index 5f90476af35703..62013ff8f799c3 100644
--- a/docs/apache-airflow/migrations-ref.rst
+++ b/docs/apache-airflow/migrations-ref.rst
@@ -39,9 +39,7 @@ Here's the list of all the Database Migrations that are executed via when you ru
+-------------------------+------------------+-------------------+--------------------------------------------------------------+
| Revision ID | Revises ID | Airflow Version | Description |
+=========================+==================+===================+==============================================================+
-| ``03de77aaa4ec`` (head) | ``e39a26ac59f6`` | ``3.0.0`` | add bundle_name to ParseImportError. |
-+-------------------------+------------------+-------------------+--------------------------------------------------------------+
-| ``e39a26ac59f6`` | ``38770795785f`` | ``3.0.0`` | remove pickled data from dagrun table. |
+| ``e39a26ac59f6`` (head) | ``38770795785f`` | ``3.0.0`` | remove pickled data from dagrun table. |
+-------------------------+------------------+-------------------+--------------------------------------------------------------+
| ``38770795785f`` | ``5c9c0231baa2`` | ``3.0.0`` | Add asset reference models. |
+-------------------------+------------------+-------------------+--------------------------------------------------------------+