This is an automated email from the ASF dual-hosted git repository.

ephraimanierobi pushed a commit to branch v2-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit e6b41e0198009965506570e793753fae3daaca86
Author: Michael Peteuil <michael.pete...@gmail.com>
AuthorDate: Mon May 9 13:48:11 2022 -0400

    Apply specific ID collation to root_dag_id too (#23536)
    
    In certain databases there is a need to set the collation for ID fields
    like dag_id or task_id to something different than the database default.
    This is because in MySQL with utf8mb4 the index size becomes too big for
    the MySQL limits. In past pull requests this was handled
    [#7570](https://github.com/apache/airflow/pull/7570),
    [#17729](https://github.com/apache/airflow/pull/17729), but the
    root_dag_id field on the dag model was missed. Since this field is used
    to join with the dag_id in various other models ([and
    
self-referentially](https://github.com/apache/airflow/blob/451c7cbc42a83a180c4362693508ed33dd1d1dab/airflow/models/dag.py#L2766)),
    it also needs to have the same collation as other ID fields.
    
    This can be seen by running `airflow db reset` before and after applying
    this change while also specifying `sql_engine_collation_for_ids` in the
    configuration.
    
    Other related PRs
    [#19408](https://github.com/apache/airflow/pull/19408)
    
    (cherry picked from commit b7f862760ce4e20a284bb1933c9078e54851c518)
---
 .../migrations/versions/0045_b3b105409875_add_root_dag_id_to_dag.py   | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git 
a/airflow/migrations/versions/0045_b3b105409875_add_root_dag_id_to_dag.py 
b/airflow/migrations/versions/0045_b3b105409875_add_root_dag_id_to_dag.py
index 3d184e6b9b..f879450369 100644
--- a/airflow/migrations/versions/0045_b3b105409875_add_root_dag_id_to_dag.py
+++ b/airflow/migrations/versions/0045_b3b105409875_add_root_dag_id_to_dag.py
@@ -27,6 +27,8 @@ Create Date: 2019-09-28 23:20:01.744775
 import sqlalchemy as sa
 from alembic import op
 
+from airflow.migrations.db_types import StringID
+
 # revision identifiers, used by Alembic.
 revision = 'b3b105409875'
 down_revision = 'd38e04c12aa2'
@@ -37,7 +39,7 @@ airflow_version = '1.10.7'
 
 def upgrade():
     """Apply Add ``root_dag_id`` to ``DAG``"""
-    op.add_column('dag', sa.Column('root_dag_id', sa.String(length=250), 
nullable=True))
+    op.add_column('dag', sa.Column('root_dag_id', StringID(), nullable=True))
     op.create_index('idx_root_dag_id', 'dag', ['root_dag_id'], unique=False)
 
 

Reply via email to