You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ep...@apache.org on 2023/12/06 08:33:27 UTC

(airflow) branch main updated: Revert "Add a public interface for custom weight_rule implementation (#35210)" (#36066)

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

ephraimanierobi 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 f60d458dc0 Revert "Add a public interface for custom weight_rule implementation (#35210)" (#36066)
f60d458dc0 is described below

commit f60d458dc08a5d5fbe5903fffca8f7b03009f49a
Author: Hussein Awala <hu...@awala.fr>
AuthorDate: Wed Dec 6 10:33:18 2023 +0200

    Revert "Add a public interface for custom weight_rule implementation (#35210)" (#36066)
    
    This reverts commit 3385113e277f86b5f163a3509ba61590cfe7d8cc.
---
 airflow/api_connexion/openapi/v1.yaml              |   7 -
 airflow/api_connexion/schemas/task_schema.py       |   1 -
 airflow/config_templates/config.yml                |  11 -
 .../example_priority_weight_strategy.py            |  69 --
 airflow/executors/base_executor.py                 |   2 +-
 airflow/executors/debug_executor.py                |   2 +-
 ..._2_8_0_add_priority_weight_strategy_to_task_.py |  48 --
 ...132_2_8_0_add_processor_subdir_import_error.py} |   4 +-
 airflow/models/abstractoperator.py                 |  20 +-
 airflow/models/baseoperator.py                     |  36 +-
 airflow/models/mappedoperator.py                   |  16 +-
 airflow/models/taskinstance.py                     |  22 +-
 airflow/serialization/pydantic/taskinstance.py     |   1 -
 airflow/task/priority_strategy.py                  |  91 ---
 airflow/utils/weight_rule.py                       |   6 +-
 airflow/www/static/js/types/api-generated.ts       |  10 +-
 .../priority-weight.rst                            |  12 +-
 docs/apache-airflow/img/airflow_erd.sha256         |   2 +-
 docs/apache-airflow/img/airflow_erd.svg            | 909 ++++++++++-----------
 docs/apache-airflow/migrations-ref.rst             |   4 +-
 .../api_connexion/endpoints/test_task_endpoint.py  |  21 +-
 tests/api_connexion/schemas/test_task_schema.py    |   6 +-
 tests/models/test_baseoperator.py                  |  12 +-
 tests/models/test_dag.py                           |  20 -
 tests/models/test_taskinstance.py                  |   1 -
 tests/serialization/test_dag_serialization.py      |   3 +-
 tests/www/views/test_views_tasks.py                |   7 -
 27 files changed, 499 insertions(+), 844 deletions(-)

diff --git a/airflow/api_connexion/openapi/v1.yaml b/airflow/api_connexion/openapi/v1.yaml
index 25117ddb0e..11b716368a 100644
--- a/airflow/api_connexion/openapi/v1.yaml
+++ b/airflow/api_connexion/openapi/v1.yaml
@@ -3738,8 +3738,6 @@ components:
           readOnly: true
         weight_rule:
           $ref: "#/components/schemas/WeightRule"
-        priority_weight_strategy:
-          $ref: "#/components/schemas/PriorityWeightStrategy"
         ui_color:
           $ref: "#/components/schemas/Color"
         ui_fgcolor:
@@ -4769,16 +4767,11 @@ components:
     WeightRule:
       description: Weight rule.
       type: string
-      nullable: true
       enum:
         - downstream
         - upstream
         - absolute
 
-    PriorityWeightStrategy:
-      description: Priority weight strategy.
-      type: string
-
     HealthStatus:
       description: Health status
       type: string
diff --git a/airflow/api_connexion/schemas/task_schema.py b/airflow/api_connexion/schemas/task_schema.py
index cd8ccdfd3b..ac1b465bb2 100644
--- a/airflow/api_connexion/schemas/task_schema.py
+++ b/airflow/api_connexion/schemas/task_schema.py
@@ -57,7 +57,6 @@ class TaskSchema(Schema):
     retry_exponential_backoff = fields.Boolean(dump_only=True)
     priority_weight = fields.Number(dump_only=True)
     weight_rule = WeightRuleField(dump_only=True)
-    priority_weight_strategy = fields.String(dump_only=True)
     ui_color = ColorField(dump_only=True)
     ui_fgcolor = ColorField(dump_only=True)
     template_fields = fields.List(fields.String(), dump_only=True)
diff --git a/airflow/config_templates/config.yml b/airflow/config_templates/config.yml
index 50aaea0eff..63bcb3edcd 100644
--- a/airflow/config_templates/config.yml
+++ b/airflow/config_templates/config.yml
@@ -306,17 +306,6 @@ core:
       description: |
         The weighting method used for the effective total priority weight of the task
       version_added: 2.2.0
-      version_deprecated: 2.8.0
-      deprecation_reason: |
-        This option is deprecated and will be removed in Airflow 3.0.
-        Please use ``default_task_priority_weight_strategy`` instead.
-      type: string
-      example: ~
-      default: ~
-    default_task_priority_weight_strategy:
-      description: |
-        The strategy used for the effective total priority weight of the task
-      version_added: 2.8.0
       type: string
       example: ~
       default: "downstream"
diff --git a/airflow/example_dags/example_priority_weight_strategy.py b/airflow/example_dags/example_priority_weight_strategy.py
deleted file mode 100644
index 5575d74a37..0000000000
--- a/airflow/example_dags/example_priority_weight_strategy.py
+++ /dev/null
@@ -1,69 +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.
-"""Example DAG demonstrating the usage of a custom PriorityWeightStrategy class."""
-
-from __future__ import annotations
-
-from typing import TYPE_CHECKING
-
-import pendulum
-
-from airflow.models.dag import DAG
-from airflow.operators.python import PythonOperator
-from airflow.task.priority_strategy import PriorityWeightStrategy
-
-if TYPE_CHECKING:
-    from airflow.models import TaskInstance
-
-
-def success_on_third_attempt(ti: TaskInstance, **context):
-    if ti.try_number < 3:
-        raise Exception("Not yet")
-
-
-class DecreasingPriorityStrategy(PriorityWeightStrategy):
-    """A priority weight strategy that decreases the priority weight with each attempt."""
-
-    def get_weight(self, ti: TaskInstance):
-        return max(3 - ti._try_number + 1, 1)
-
-
-with DAG(
-    dag_id="example_priority_weight_strategy",
-    start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
-    catchup=False,
-    schedule="@daily",
-    tags=["example"],
-    default_args={
-        "retries": 3,
-        "retry_delay": pendulum.duration(seconds=10),
-    },
-) as dag:
-    fixed_weight_task = PythonOperator(
-        task_id="fixed_weight_task",
-        python_callable=success_on_third_attempt,
-        priority_weight_strategy="downstream",
-    )
-
-    decreasing_weight_task = PythonOperator(
-        task_id="decreasing_weight_task",
-        python_callable=success_on_third_attempt,
-        priority_weight_strategy=(
-            "airflow.example_dags.example_priority_weight_strategy.DecreasingPriorityStrategy"
-        ),
-    )
diff --git a/airflow/executors/base_executor.py b/airflow/executors/base_executor.py
index babfe8e903..2791c938a4 100644
--- a/airflow/executors/base_executor.py
+++ b/airflow/executors/base_executor.py
@@ -184,7 +184,7 @@ class BaseExecutor(LoggingMixin):
         self.queue_command(
             task_instance,
             command_list_to_run,
-            priority=task_instance.priority_weight,
+            priority=task_instance.task.priority_weight_total,
             queue=task_instance.task.queue,
         )
 
diff --git a/airflow/executors/debug_executor.py b/airflow/executors/debug_executor.py
index bb5f46b1f7..750b0ba20b 100644
--- a/airflow/executors/debug_executor.py
+++ b/airflow/executors/debug_executor.py
@@ -109,7 +109,7 @@ class DebugExecutor(BaseExecutor):
         self.queue_command(
             task_instance,
             [str(task_instance)],  # Just for better logging, it's not used anywhere
-            priority=task_instance.priority_weight,
+            priority=task_instance.task.priority_weight_total,
             queue=task_instance.task.queue,
         )
         # Save params for TaskInstance._run_raw_task
diff --git a/airflow/migrations/versions/0132_2_8_0_add_priority_weight_strategy_to_task_.py b/airflow/migrations/versions/0132_2_8_0_add_priority_weight_strategy_to_task_.py
deleted file mode 100644
index 8b3d30ba76..0000000000
--- a/airflow/migrations/versions/0132_2_8_0_add_priority_weight_strategy_to_task_.py
+++ /dev/null
@@ -1,48 +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 priority_weight_strategy to task_instance
-
-Revision ID: 624ecf3b6a5e
-Revises: bd5dfbe21f88
-Create Date: 2023-10-29 02:01:34.774596
-
-"""
-
-import sqlalchemy as sa
-from alembic import op
-
-
-# revision identifiers, used by Alembic.
-revision = "624ecf3b6a5e"
-down_revision = "bd5dfbe21f88"
-branch_labels = None
-depends_on = None
-airflow_version = "2.8.0"
-
-
-def upgrade():
-    """Apply add priority_weight_strategy to task_instance"""
-    with op.batch_alter_table("task_instance") as batch_op:
-        batch_op.add_column(sa.Column("priority_weight_strategy", sa.String(length=1000)))
-
-
-def downgrade():
-    """Unapply add priority_weight_strategy to task_instance"""
-    with op.batch_alter_table("task_instance") as batch_op:
-        batch_op.drop_column("priority_weight_strategy")
diff --git a/airflow/migrations/versions/0133_2_8_0_add_processor_subdir_import_error.py b/airflow/migrations/versions/0132_2_8_0_add_processor_subdir_import_error.py
similarity index 97%
rename from airflow/migrations/versions/0133_2_8_0_add_processor_subdir_import_error.py
rename to airflow/migrations/versions/0132_2_8_0_add_processor_subdir_import_error.py
index 9509047efa..02878ccb93 100644
--- a/airflow/migrations/versions/0133_2_8_0_add_processor_subdir_import_error.py
+++ b/airflow/migrations/versions/0132_2_8_0_add_processor_subdir_import_error.py
@@ -19,7 +19,7 @@
 """Add processor_subdir to ImportError.
 
 Revision ID: 10b52ebd31f7
-Revises: 624ecf3b6a5e
+Revises: bd5dfbe21f88
 Create Date: 2023-11-29 16:54:48.101834
 
 """
@@ -30,7 +30,7 @@ from alembic import op
 
 # revision identifiers, used by Alembic.
 revision = "10b52ebd31f7"
-down_revision = "624ecf3b6a5e"
+down_revision = "bd5dfbe21f88"
 branch_labels = None
 depends_on = None
 airflow_version = "2.8.0"
diff --git a/airflow/models/abstractoperator.py b/airflow/models/abstractoperator.py
index 0145f7d149..df0e6cb349 100644
--- a/airflow/models/abstractoperator.py
+++ b/airflow/models/abstractoperator.py
@@ -19,7 +19,6 @@ from __future__ import annotations
 
 import datetime
 import inspect
-import warnings
 from functools import cached_property
 from typing import TYPE_CHECKING, Any, Callable, ClassVar, Collection, Iterable, Iterator, Sequence
 
@@ -71,14 +70,8 @@ DEFAULT_RETRY_DELAY: datetime.timedelta = datetime.timedelta(
 )
 MAX_RETRY_DELAY: int = conf.getint("core", "max_task_retry_delay", fallback=24 * 60 * 60)
 
-DEFAULT_WEIGHT_RULE: WeightRule | None = (
-    WeightRule(conf.get("core", "default_task_weight_rule", fallback=None))
-    if conf.get("core", "default_task_weight_rule", fallback=None)
-    else None
-)
-
-DEFAULT_PRIORITY_WEIGHT_STRATEGY: str = conf.get(
-    "core", "default_task_priority_weight_strategy", fallback=WeightRule.DOWNSTREAM
+DEFAULT_WEIGHT_RULE: WeightRule = WeightRule(
+    conf.get("core", "default_task_weight_rule", fallback=WeightRule.DOWNSTREAM)
 )
 DEFAULT_TRIGGER_RULE: TriggerRule = TriggerRule.ALL_SUCCESS
 DEFAULT_TASK_EXECUTION_TIMEOUT: datetime.timedelta | None = conf.gettimedelta(
@@ -105,8 +98,7 @@ class AbstractOperator(Templater, DAGNode):
 
     operator_class: type[BaseOperator] | dict[str, Any]
 
-    weight_rule: str | None
-    priority_weight_strategy: str
+    weight_rule: str
     priority_weight: int
 
     # Defines the operator level extra links.
@@ -406,12 +398,6 @@ class AbstractOperator(Templater, DAGNode):
         - WeightRule.DOWNSTREAM - adds priority weight of all downstream tasks
         - WeightRule.UPSTREAM - adds priority weight of all upstream tasks
         """
-        warnings.warn(
-            "Accessing `priority_weight_total` from AbstractOperator instance is deprecated."
-            " Please use `priority_weight` from task instance instead.",
-            DeprecationWarning,
-            stacklevel=2,
-        )
         if self.weight_rule == WeightRule.ABSOLUTE:
             return self.priority_weight
         elif self.weight_rule == WeightRule.DOWNSTREAM:
diff --git a/airflow/models/baseoperator.py b/airflow/models/baseoperator.py
index ca368555df..2ba7ec8ad1 100644
--- a/airflow/models/baseoperator.py
+++ b/airflow/models/baseoperator.py
@@ -61,7 +61,6 @@ from airflow.models.abstractoperator import (
     DEFAULT_OWNER,
     DEFAULT_POOL_SLOTS,
     DEFAULT_PRIORITY_WEIGHT,
-    DEFAULT_PRIORITY_WEIGHT_STRATEGY,
     DEFAULT_QUEUE,
     DEFAULT_RETRIES,
     DEFAULT_RETRY_DELAY,
@@ -77,7 +76,6 @@ from airflow.models.pool import Pool
 from airflow.models.taskinstance import TaskInstance, clear_task_instances
 from airflow.models.taskmixin import DependencyMixin
 from airflow.serialization.enums import DagAttributeTypes
-from airflow.task.priority_strategy import get_priority_weight_strategy
 from airflow.ti_deps.deps.not_in_retry_period_dep import NotInRetryPeriodDep
 from airflow.ti_deps.deps.not_previously_skipped_dep import NotPreviouslySkippedDep
 from airflow.ti_deps.deps.prev_dagrun_dep import PrevDagrunDep
@@ -92,6 +90,7 @@ from airflow.utils.session import NEW_SESSION, provide_session
 from airflow.utils.setup_teardown import SetupTeardownContext
 from airflow.utils.trigger_rule import TriggerRule
 from airflow.utils.types import NOTSET
+from airflow.utils.weight_rule import WeightRule
 from airflow.utils.xcom import XCOM_RETURN_KEY
 
 if TYPE_CHECKING:
@@ -208,7 +207,6 @@ _PARTIAL_DEFAULTS = {
     "retry_exponential_backoff": False,
     "priority_weight": DEFAULT_PRIORITY_WEIGHT,
     "weight_rule": DEFAULT_WEIGHT_RULE,
-    "priority_weight_strategy": DEFAULT_PRIORITY_WEIGHT_STRATEGY,
     "inlets": [],
     "outlets": [],
 }
@@ -242,7 +240,6 @@ def partial(
     retry_exponential_backoff: bool | ArgNotSet = NOTSET,
     priority_weight: int | ArgNotSet = NOTSET,
     weight_rule: str | ArgNotSet = NOTSET,
-    priority_weight_strategy: str | ArgNotSet = NOTSET,
     sla: timedelta | None | ArgNotSet = NOTSET,
     max_active_tis_per_dag: int | None | ArgNotSet = NOTSET,
     max_active_tis_per_dagrun: int | None | ArgNotSet = NOTSET,
@@ -306,7 +303,6 @@ def partial(
         "retry_exponential_backoff": retry_exponential_backoff,
         "priority_weight": priority_weight,
         "weight_rule": weight_rule,
-        "priority_weight_strategy": priority_weight_strategy,
         "sla": sla,
         "max_active_tis_per_dag": max_active_tis_per_dag,
         "max_active_tis_per_dagrun": max_active_tis_per_dagrun,
@@ -548,9 +544,9 @@ class BaseOperator(AbstractOperator, metaclass=BaseOperatorMeta):
         This allows the executor to trigger higher priority tasks before
         others when things get backed up. Set priority_weight as a higher
         number for more important tasks.
-    :param weight_rule: Deprecated field, please use ``priority_weight_strategy`` instead.
-        weighting method used for the effective total priority weight of the task. Options are:
-        ``{ downstream | upstream | absolute }`` default is ``None``
+    :param weight_rule: weighting method used for the effective total
+        priority weight of the task. Options are:
+        ``{ downstream | upstream | absolute }`` default is ``downstream``
         When set to ``downstream`` the effective weight of the task is the
         aggregate sum of all downstream descendants. As a result, upstream
         tasks will have higher weight and will be scheduled more aggressively
@@ -570,11 +566,6 @@ class BaseOperator(AbstractOperator, metaclass=BaseOperatorMeta):
         significantly speeding up the task creation process as for very large
         DAGs. Options can be set as string or using the constants defined in
         the static class ``airflow.utils.WeightRule``
-    :param priority_weight_strategy: weighting method used for the effective total priority weight
-        of the task. You can provide one of the following options:
-        ``{ downstream | upstream | absolute }`` or the path to a custom
-        strategy class that extends ``airflow.task.priority_strategy.PriorityWeightStrategy``.
-        Default is ``downstream``.
     :param queue: which queue to target when running this job. Not
         all executors implement queue management, the CeleryExecutor
         does support targeting specific queues.
@@ -763,8 +754,7 @@ class BaseOperator(AbstractOperator, metaclass=BaseOperatorMeta):
         params: collections.abc.MutableMapping | None = None,
         default_args: dict | None = None,
         priority_weight: int = DEFAULT_PRIORITY_WEIGHT,
-        weight_rule: str | None = DEFAULT_WEIGHT_RULE,
-        priority_weight_strategy: str = DEFAULT_PRIORITY_WEIGHT_STRATEGY,
+        weight_rule: str = DEFAULT_WEIGHT_RULE,
         queue: str = DEFAULT_QUEUE,
         pool: str | None = None,
         pool_slots: int = DEFAULT_POOL_SLOTS,
@@ -911,17 +901,13 @@ class BaseOperator(AbstractOperator, metaclass=BaseOperatorMeta):
                 f"received '{type(priority_weight)}'."
             )
         self.priority_weight = priority_weight
-        self.weight_rule = weight_rule
-        self.priority_weight_strategy = priority_weight_strategy
-        if weight_rule:
-            warnings.warn(
-                "weight_rule is deprecated. Please use `priority_weight_strategy` instead.",
-                DeprecationWarning,
-                stacklevel=2,
+        if not WeightRule.is_valid(weight_rule):
+            raise AirflowException(
+                f"The weight_rule must be one of "
+                f"{WeightRule.all_weight_rules},'{dag.dag_id if dag else ''}.{task_id}'; "
+                f"received '{weight_rule}'."
             )
-            self.priority_weight_strategy = weight_rule
-        # validate the priority weight strategy
-        get_priority_weight_strategy(self.priority_weight_strategy)
+        self.weight_rule = weight_rule
         self.resources = coerce_resources(resources)
         if task_concurrency and not max_active_tis_per_dag:
             # TODO: Remove in Airflow 3.0
diff --git a/airflow/models/mappedoperator.py b/airflow/models/mappedoperator.py
index 480c236758..8174db145a 100644
--- a/airflow/models/mappedoperator.py
+++ b/airflow/models/mappedoperator.py
@@ -32,7 +32,6 @@ from airflow.models.abstractoperator import (
     DEFAULT_OWNER,
     DEFAULT_POOL_SLOTS,
     DEFAULT_PRIORITY_WEIGHT,
-    DEFAULT_PRIORITY_WEIGHT_STRATEGY,
     DEFAULT_QUEUE,
     DEFAULT_RETRIES,
     DEFAULT_RETRY_DELAY,
@@ -49,7 +48,6 @@ from airflow.models.expandinput import (
 )
 from airflow.models.pool import Pool
 from airflow.serialization.enums import DagAttributeTypes
-from airflow.task.priority_strategy import get_priority_weight_strategy
 from airflow.ti_deps.deps.mapped_task_expanded import MappedTaskIsExpanded
 from airflow.typing_compat import Literal
 from airflow.utils.context import context_update_for_unmapped
@@ -331,8 +329,6 @@ class MappedOperator(AbstractOperator):
                 f"SLAs are unsupported with mapped tasks. Please set `sla=None` for task "
                 f"{self.task_id!r}."
             )
-        # validate the priority weight strategy
-        get_priority_weight_strategy(self.priority_weight_strategy)
 
     @classmethod
     @cache
@@ -475,16 +471,8 @@ class MappedOperator(AbstractOperator):
         return self.partial_kwargs.get("priority_weight", DEFAULT_PRIORITY_WEIGHT)
 
     @property
-    def weight_rule(self) -> str | None:  # type: ignore[override]
-        return self.partial_kwargs.get("weight_rule") or DEFAULT_WEIGHT_RULE
-
-    @property
-    def priority_weight_strategy(self) -> str:  # type: ignore[override]
-        return (
-            self.weight_rule  # for backward compatibility
-            or self.partial_kwargs.get("priority_weight_strategy")
-            or DEFAULT_PRIORITY_WEIGHT_STRATEGY
-        )
+    def weight_rule(self) -> str:  # type: ignore[override]
+        return self.partial_kwargs.get("weight_rule", DEFAULT_WEIGHT_RULE)
 
     @property
     def sla(self) -> datetime.timedelta | None:
diff --git a/airflow/models/taskinstance.py b/airflow/models/taskinstance.py
index 7efc353d94..f041dcf208 100644
--- a/airflow/models/taskinstance.py
+++ b/airflow/models/taskinstance.py
@@ -98,7 +98,6 @@ from airflow.models.xcom import LazyXComAccess, XCom
 from airflow.plugins_manager import integrate_macros_plugins
 from airflow.sentry import Sentry
 from airflow.stats import Stats
-from airflow.task.priority_strategy import get_priority_weight_strategy
 from airflow.templates import SandboxedEnvironment
 from airflow.ti_deps.dep_context import DepContext
 from airflow.ti_deps.dependencies_deps import REQUEUEABLE_DEPS, RUNNING_DEPS
@@ -131,6 +130,7 @@ TR = TaskReschedule
 _CURRENT_CONTEXT: list[Context] = []
 log = logging.getLogger(__name__)
 
+
 if TYPE_CHECKING:
     from datetime import datetime
     from pathlib import PurePath
@@ -159,6 +159,7 @@ if TYPE_CHECKING:
 else:
     from sqlalchemy.ext.hybrid import hybrid_property
 
+
 PAST_DEPENDS_MET = "past_depends_met"
 
 
@@ -486,7 +487,6 @@ def _refresh_from_db(
         task_instance.pool_slots = ti.pool_slots or 1
         task_instance.queue = ti.queue
         task_instance.priority_weight = ti.priority_weight
-        task_instance.priority_weight_strategy = ti.priority_weight_strategy
         task_instance.operator = ti.operator
         task_instance.custom_operator_name = ti.custom_operator_name
         task_instance.queued_dttm = ti.queued_dttm
@@ -881,13 +881,7 @@ def _refresh_from_task(
     task_instance.queue = task.queue
     task_instance.pool = pool_override or task.pool
     task_instance.pool_slots = task.pool_slots
-    with contextlib.suppress(Exception):
-        # This method is called from the different places, and sometimes the TI is not fully initialized
-        task_instance.priority_weight = get_priority_weight_strategy(
-            task.priority_weight_strategy
-        ).get_weight(
-            task_instance  # type: ignore
-        )
+    task_instance.priority_weight = task.priority_weight_total
     task_instance.run_as_user = task.run_as_user
     # Do not set max_tries to task.retries here because max_tries is a cumulative
     # value that needs to be stored in the db.
@@ -1222,7 +1216,6 @@ class TaskInstance(Base, LoggingMixin):
     pool_slots = Column(Integer, default=1, nullable=False)
     queue = Column(String(256))
     priority_weight = Column(Integer)
-    priority_weight_strategy = Column(String(1000))
     operator = Column(String(1000))
     custom_operator_name = Column(String(1000))
     queued_dttm = Column(UtcDateTime)
@@ -1391,9 +1384,6 @@ class TaskInstance(Base, LoggingMixin):
 
         :meta private:
         """
-        priority_weight = get_priority_weight_strategy(task.priority_weight_strategy).get_weight(
-            TaskInstance(task=task, run_id=run_id, map_index=map_index)
-        )
         return {
             "dag_id": task.dag_id,
             "task_id": task.task_id,
@@ -1404,8 +1394,7 @@ class TaskInstance(Base, LoggingMixin):
             "queue": task.queue,
             "pool": task.pool,
             "pool_slots": task.pool_slots,
-            "priority_weight": priority_weight,
-            "priority_weight_strategy": task.priority_weight_strategy,
+            "priority_weight": task.priority_weight_total,
             "run_as_user": task.run_as_user,
             "max_tries": task.retries,
             "executor_config": task.executor_config,
@@ -3462,7 +3451,6 @@ class SimpleTaskInstance:
         key: TaskInstanceKey,
         run_as_user: str | None = None,
         priority_weight: int | None = None,
-        priority_weight_strategy: str | None = None,
     ):
         self.dag_id = dag_id
         self.task_id = task_id
@@ -3476,7 +3464,6 @@ class SimpleTaskInstance:
         self.run_as_user = run_as_user
         self.pool = pool
         self.priority_weight = priority_weight
-        self.priority_weight_strategy = priority_weight_strategy
         self.queue = queue
         self.key = key
 
@@ -3517,7 +3504,6 @@ class SimpleTaskInstance:
             key=ti.key,
             run_as_user=ti.run_as_user if hasattr(ti, "run_as_user") else None,
             priority_weight=ti.priority_weight if hasattr(ti, "priority_weight") else None,
-            priority_weight_strategy=ti.priority_weight_strategy,
         )
 
     @classmethod
diff --git a/airflow/serialization/pydantic/taskinstance.py b/airflow/serialization/pydantic/taskinstance.py
index 2556027928..106a31186e 100644
--- a/airflow/serialization/pydantic/taskinstance.py
+++ b/airflow/serialization/pydantic/taskinstance.py
@@ -87,7 +87,6 @@ class TaskInstancePydantic(BaseModelPydantic, LoggingMixin):
     pool_slots: int
     queue: str
     priority_weight: Optional[int]
-    priority_weight_strategy: Optional[str]
     operator: str
     custom_operator_name: Optional[str]
     queued_dttm: Optional[str]
diff --git a/airflow/task/priority_strategy.py b/airflow/task/priority_strategy.py
deleted file mode 100644
index 6e061ad706..0000000000
--- a/airflow/task/priority_strategy.py
+++ /dev/null
@@ -1,91 +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.
-"""Priority weight strategies for task scheduling."""
-from __future__ import annotations
-
-from abc import ABC, abstractmethod
-from typing import TYPE_CHECKING
-
-from airflow.exceptions import AirflowException
-from airflow.utils.module_loading import import_string
-
-if TYPE_CHECKING:
-    from airflow.models.taskinstance import TaskInstance
-
-
-class PriorityWeightStrategy(ABC):
-    """Priority weight strategy interface."""
-
-    @abstractmethod
-    def get_weight(self, ti: TaskInstance):
-        """Get the priority weight of a task."""
-        ...
-
-
-class AbsolutePriorityWeightStrategy(PriorityWeightStrategy):
-    """Priority weight strategy that uses the task's priority weight directly."""
-
-    def get_weight(self, ti: TaskInstance):
-        return ti.task.priority_weight
-
-
-class DownstreamPriorityWeightStrategy(PriorityWeightStrategy):
-    """Priority weight strategy that uses the sum of the priority weights of all downstream tasks."""
-
-    def get_weight(self, ti: TaskInstance):
-        dag = ti.task.get_dag()
-        if dag is None:
-            return ti.task.priority_weight
-        return ti.task.priority_weight + sum(
-            dag.task_dict[task_id].priority_weight
-            for task_id in ti.task.get_flat_relative_ids(upstream=False)
-        )
-
-
-class UpstreamPriorityWeightStrategy(PriorityWeightStrategy):
-    """Priority weight strategy that uses the sum of the priority weights of all upstream tasks."""
-
-    def get_weight(self, ti: TaskInstance):
-        dag = ti.task.get_dag()
-        if dag is None:
-            return ti.task.priority_weight
-        return ti.task.priority_weight + sum(
-            dag.task_dict[task_id].priority_weight for task_id in ti.task.get_flat_relative_ids(upstream=True)
-        )
-
-
-_airflow_priority_weight_strategies = {
-    "absolute": AbsolutePriorityWeightStrategy(),
-    "downstream": DownstreamPriorityWeightStrategy(),
-    "upstream": UpstreamPriorityWeightStrategy(),
-}
-
-
-def get_priority_weight_strategy(strategy_name: str) -> PriorityWeightStrategy:
-    """Get a priority weight strategy by name or class path."""
-    if strategy_name not in _airflow_priority_weight_strategies:
-        try:
-            priority_strategy_class = import_string(strategy_name)
-            if not issubclass(priority_strategy_class, PriorityWeightStrategy):
-                raise AirflowException(
-                    f"Priority strategy {priority_strategy_class} is not a subclass of PriorityWeightStrategy"
-                )
-            _airflow_priority_weight_strategies[strategy_name] = priority_strategy_class()
-        except ImportError:
-            raise AirflowException(f"Unknown priority strategy {strategy_name}")
-    return _airflow_priority_weight_strategies[strategy_name]
diff --git a/airflow/utils/weight_rule.py b/airflow/utils/weight_rule.py
index dd6c554c67..f65f2fa77e 100644
--- a/airflow/utils/weight_rule.py
+++ b/airflow/utils/weight_rule.py
@@ -23,11 +23,7 @@ from airflow.compat.functools import cache
 
 
 class WeightRule(str, Enum):
-    """
-    Weight rules.
-
-    This class is deprecated and will be removed in Airflow 3
-    """
+    """Weight rules."""
 
     DOWNSTREAM = "downstream"
     UPSTREAM = "upstream"
diff --git a/airflow/www/static/js/types/api-generated.ts b/airflow/www/static/js/types/api-generated.ts
index 0771647159..55ade6179d 100644
--- a/airflow/www/static/js/types/api-generated.ts
+++ b/airflow/www/static/js/types/api-generated.ts
@@ -1561,7 +1561,6 @@ export interface components {
       retry_exponential_backoff?: boolean;
       priority_weight?: number;
       weight_rule?: components["schemas"]["WeightRule"];
-      priority_weight_strategy?: components["schemas"]["PriorityWeightStrategy"];
       ui_color?: components["schemas"]["Color"];
       ui_fgcolor?: components["schemas"]["Color"];
       template_fields?: string[];
@@ -2235,11 +2234,9 @@ export interface components {
       | "always";
     /**
      * @description Weight rule.
-     * @enum {string|null}
+     * @enum {string}
      */
-    WeightRule: ("downstream" | "upstream" | "absolute") | null;
-    /** @description Priority weight strategy. */
-    PriorityWeightStrategy: string;
+    WeightRule: "downstream" | "upstream" | "absolute";
     /**
      * @description Health status
      * @enum {string|null}
@@ -4955,9 +4952,6 @@ export type TriggerRule = CamelCasedPropertiesDeep<
 export type WeightRule = CamelCasedPropertiesDeep<
   components["schemas"]["WeightRule"]
 >;
-export type PriorityWeightStrategy = CamelCasedPropertiesDeep<
-  components["schemas"]["PriorityWeightStrategy"]
->;
 export type HealthStatus = CamelCasedPropertiesDeep<
   components["schemas"]["HealthStatus"]
 >;
diff --git a/docs/apache-airflow/administration-and-deployment/priority-weight.rst b/docs/apache-airflow/administration-and-deployment/priority-weight.rst
index 3e064123af..87a9288ddc 100644
--- a/docs/apache-airflow/administration-and-deployment/priority-weight.rst
+++ b/docs/apache-airflow/administration-and-deployment/priority-weight.rst
@@ -22,9 +22,12 @@ Priority Weights
 
 ``priority_weight`` defines priorities in the executor queue. The default ``priority_weight`` is ``1``, and can be
 bumped to any integer. Moreover, each task has a true ``priority_weight`` that is calculated based on its
-``priority_weight_strategy`` which defines weighting method used for the effective total priority weight of the task.
+``weight_rule`` which defines weighting method used for the effective total priority weight of the task.
 
-Airflow has three weighting strategies:
+By default, Airflow's weighting method is ``downstream``. You can find other weighting methods in
+:class:`airflow.utils.WeightRule`.
+
+There are three weighting methods.
 
 - downstream
 
@@ -54,10 +57,5 @@ Airflow has three weighting strategies:
   significantly speeding up the task creation process as for very
   large DAGs
 
-You can also implement your own weighting strategy by extending the class
-:class:`~airflow.task.priority_strategy.PriorityWeightStrategy` and overriding the method
-:meth:`~airflow.task.priority_strategy.PriorityWeightStrategy.get_weight`, the providing the path of your class
-to the ``priority_weight_strategy`` parameter.
-
 
 The ``priority_weight`` parameter can be used in conjunction with :ref:`concepts:pool`.
diff --git a/docs/apache-airflow/img/airflow_erd.sha256 b/docs/apache-airflow/img/airflow_erd.sha256
index 93eff299cb..ded2722d37 100644
--- a/docs/apache-airflow/img/airflow_erd.sha256
+++ b/docs/apache-airflow/img/airflow_erd.sha256
@@ -1 +1 @@
-5d80302f775a966cffc5ed6c452c56a9e181afce92dc4ccf9b29b21171091f38
\ No newline at end of file
+a5677b0b603e8835f92da4b8b061ec268ce7257ef6b446f12593743ecf90710a
\ 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 317dc89041..497ef76975 100644
--- a/docs/apache-airflow/img/airflow_erd.svg
+++ b/docs/apache-airflow/img/airflow_erd.svg
@@ -4,11 +4,11 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: %3 Pages: 1 -->
-<svg width="1565pt" height="5167pt"
- viewBox="0.00 0.00 1565.00 5166.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="1559pt" height="5167pt"
+ viewBox="0.00 0.00 1559.00 5166.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 5162.5)">
 <title>%3</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-5162.5 1561,-5162.5 1561,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-5162.5 1555,-5162.5 1555,4 -4,4"/>
 <!-- job -->
 <g id="node1" class="node">
 <title>job</title>
@@ -217,99 +217,99 @@
 <!-- ab_user_role -->
 <g id="node7" class="node">
 <title>ab_user_role</title>
-<polygon fill="none" stroke="black" points="921.5,-2028 921.5,-2056 1097.5,-2056 1097.5,-2028 921.5,-2028"/>
-<text text-anchor="start" x="952.5" y="-2039.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_user_role</text>
-<polygon fill="none" stroke="black" points="921.5,-2003 921.5,-2028 1097.5,-2028 1097.5,-2003 921.5,-2003"/>
-<text text-anchor="start" x="926.5" y="-2012.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="939.5" y="-2012.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1016.5" y="-2012.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="921.5,-1978 921.5,-2003 1097.5,-2003 1097.5,-1978 921.5,-1978"/>
-<text text-anchor="start" x="926.5" y="-1987.8" font-family="Helvetica,sans-Serif" font-size="14.00">role_id</text>
-<text text-anchor="start" x="972.5" y="-1987.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="921.5,-1953 921.5,-1978 1097.5,-1978 1097.5,-1953 921.5,-1953"/>
-<text text-anchor="start" x="926.5" y="-1962.8" font-family="Helvetica,sans-Serif" font-size="14.00">user_id</text>
-<text text-anchor="start" x="977.5" y="-1962.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="918.5,-2028 918.5,-2056 1094.5,-2056 1094.5,-2028 918.5,-2028"/>
+<text text-anchor="start" x="949.5" y="-2039.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_user_role</text>
+<polygon fill="none" stroke="black" points="918.5,-2003 918.5,-2028 1094.5,-2028 1094.5,-2003 918.5,-2003"/>
+<text text-anchor="start" x="923.5" y="-2012.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="936.5" y="-2012.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1013.5" y="-2012.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="918.5,-1978 918.5,-2003 1094.5,-2003 1094.5,-1978 918.5,-1978"/>
+<text text-anchor="start" x="923.5" y="-1987.8" font-family="Helvetica,sans-Serif" font-size="14.00">role_id</text>
+<text text-anchor="start" x="969.5" y="-1987.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="918.5,-1953 918.5,-1978 1094.5,-1978 1094.5,-1953 918.5,-1953"/>
+<text text-anchor="start" x="923.5" y="-1962.8" font-family="Helvetica,sans-Serif" font-size="14.00">user_id</text>
+<text text-anchor="start" x="974.5" y="-1962.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
 </g>
 <!-- ab_user&#45;&#45;ab_user_role -->
 <g id="edge3" class="edge">
 <title>ab_user&#45;&#45;ab_user_role</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M763.55,-1930.11C813.66,-1945.43 868.3,-1962.14 913.23,-1975.87"/>
-<text text-anchor="start" x="882.23" y="-1964.67" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="763.55" y="-1918.91" font-family="Times,serif" font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M763.53,-1930.45C812.73,-1945.61 866.21,-1962.09 910.35,-1975.69"/>
+<text text-anchor="start" x="879.35" y="-1964.49" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="763.53" y="-1919.25" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
 <!-- dag_run_note -->
 <g id="node8" class="node">
 <title>dag_run_note</title>
-<polygon fill="none" stroke="black" points="879.5,-1436 879.5,-1464 1140.5,-1464 1140.5,-1436 879.5,-1436"/>
-<text text-anchor="start" x="949.5" y="-1447.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag_run_note</text>
-<polygon fill="none" stroke="black" points="879.5,-1411 879.5,-1436 1140.5,-1436 1140.5,-1411 879.5,-1411"/>
-<text text-anchor="start" x="884.5" y="-1420.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_run_id</text>
-<text text-anchor="start" x="961.5" y="-1420.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1038.5" y="-1420.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="879.5,-1386 879.5,-1411 1140.5,-1411 1140.5,-1386 879.5,-1386"/>
-<text text-anchor="start" x="884.5" y="-1395.8" font-family="Helvetica,sans-Serif" font-size="14.00">content</text>
-<text text-anchor="start" x="937.5" y="-1395.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
-<polygon fill="none" stroke="black" points="879.5,-1361 879.5,-1386 1140.5,-1386 1140.5,-1361 879.5,-1361"/>
-<text text-anchor="start" x="884.5" y="-1370.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
-<text text-anchor="start" x="957.5" y="-1370.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="1053.5" y="-1370.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="879.5,-1336 879.5,-1361 1140.5,-1361 1140.5,-1336 879.5,-1336"/>
-<text text-anchor="start" x="884.5" y="-1345.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
-<text text-anchor="start" x="963.5" y="-1345.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="1059.5" y="-1345.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="879.5,-1311 879.5,-1336 1140.5,-1336 1140.5,-1311 879.5,-1311"/>
-<text text-anchor="start" x="884.5" y="-1320.8" font-family="Helvetica,sans-Serif" font-size="14.00">user_id</text>
-<text text-anchor="start" x="935.5" y="-1320.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="876.5,-1433 876.5,-1461 1137.5,-1461 1137.5,-1433 876.5,-1433"/>
+<text text-anchor="start" x="946.5" y="-1444.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dag_run_note</text>
+<polygon fill="none" stroke="black" points="876.5,-1408 876.5,-1433 1137.5,-1433 1137.5,-1408 876.5,-1408"/>
+<text text-anchor="start" x="881.5" y="-1417.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_run_id</text>
+<text text-anchor="start" x="958.5" y="-1417.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1035.5" y="-1417.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="876.5,-1383 876.5,-1408 1137.5,-1408 1137.5,-1383 876.5,-1383"/>
+<text text-anchor="start" x="881.5" y="-1392.8" font-family="Helvetica,sans-Serif" font-size="14.00">content</text>
+<text text-anchor="start" x="934.5" y="-1392.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
+<polygon fill="none" stroke="black" points="876.5,-1358 876.5,-1383 1137.5,-1383 1137.5,-1358 876.5,-1358"/>
+<text text-anchor="start" x="881.5" y="-1367.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
+<text text-anchor="start" x="954.5" y="-1367.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="1050.5" y="-1367.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="876.5,-1333 876.5,-1358 1137.5,-1358 1137.5,-1333 876.5,-1333"/>
+<text text-anchor="start" x="881.5" y="-1342.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
+<text text-anchor="start" x="960.5" y="-1342.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="1056.5" y="-1342.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="876.5,-1308 876.5,-1333 1137.5,-1333 1137.5,-1308 876.5,-1308"/>
+<text text-anchor="start" x="881.5" y="-1317.8" font-family="Helvetica,sans-Serif" font-size="14.00">user_id</text>
+<text text-anchor="start" x="932.5" y="-1317.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
 </g>
 <!-- ab_user&#45;&#45;dag_run_note -->
 <g id="edge4" class="edge">
 <title>ab_user&#45;&#45;dag_run_note</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M763.57,-1700.78C767.19,-1694.86 770.68,-1688.92 774,-1683 819.26,-1602.28 788.29,-1559.53 847,-1488 854.11,-1479.33 862.19,-1471.2 870.84,-1463.62"/>
-<text text-anchor="start" x="839.84" y="-1452.42" font-family="Times,serif" font-size="14.00">0..N</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M763.57,-1700.78C767.19,-1694.86 770.68,-1688.92 774,-1683 819.26,-1602.28 789.07,-1560.17 847,-1488 853.27,-1480.19 860.29,-1472.79 867.8,-1465.79"/>
+<text text-anchor="start" x="836.8" y="-1454.59" font-family="Times,serif" font-size="14.00">0..N</text>
 <text text-anchor="start" x="763.57" y="-1689.58" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
 <!-- task_instance_note -->
 <g id="node9" class="node">
 <title>task_instance_note</title>
-<polygon fill="none" stroke="black" points="1271,-1615 1271,-1643 1532,-1643 1532,-1615 1271,-1615"/>
-<text text-anchor="start" x="1315.5" y="-1626.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_instance_note</text>
-<polygon fill="none" stroke="black" points="1271,-1590 1271,-1615 1532,-1615 1532,-1590 1271,-1590"/>
-<text text-anchor="start" x="1276" y="-1599.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="1322" y="-1599.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1443" y="-1599.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1271,-1565 1271,-1590 1532,-1590 1532,-1565 1271,-1565"/>
-<text text-anchor="start" x="1276" y="-1574.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">map_index</text>
-<text text-anchor="start" x="1352" y="-1574.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1429" y="-1574.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1271,-1540 1271,-1565 1532,-1565 1532,-1540 1271,-1540"/>
-<text text-anchor="start" x="1276" y="-1549.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">run_id</text>
-<text text-anchor="start" x="1320" y="-1549.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1441" y="-1549.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1271,-1515 1271,-1540 1532,-1540 1532,-1515 1271,-1515"/>
-<text text-anchor="start" x="1276" y="-1524.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
-<text text-anchor="start" x="1325" y="-1524.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1446" y="-1524.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1271,-1490 1271,-1515 1532,-1515 1532,-1490 1271,-1490"/>
-<text text-anchor="start" x="1276" y="-1499.8" font-family="Helvetica,sans-Serif" font-size="14.00">content</text>
-<text text-anchor="start" x="1329" y="-1499.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
-<polygon fill="none" stroke="black" points="1271,-1465 1271,-1490 1532,-1490 1532,-1465 1271,-1465"/>
-<text text-anchor="start" x="1276" y="-1474.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
-<text text-anchor="start" x="1349" y="-1474.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="1445" y="-1474.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1271,-1440 1271,-1465 1532,-1465 1532,-1440 1271,-1440"/>
-<text text-anchor="start" x="1276" y="-1449.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
-<text text-anchor="start" x="1355" y="-1449.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="1451" y="-1449.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1271,-1415 1271,-1440 1532,-1440 1532,-1415 1271,-1415"/>
-<text text-anchor="start" x="1276" y="-1424.8" font-family="Helvetica,sans-Serif" font-size="14.00">user_id</text>
-<text text-anchor="start" x="1327" y="-1424.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="1265,-1606 1265,-1634 1526,-1634 1526,-1606 1265,-1606"/>
+<text text-anchor="start" x="1309.5" y="-1617.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_instance_note</text>
+<polygon fill="none" stroke="black" points="1265,-1581 1265,-1606 1526,-1606 1526,-1581 1265,-1581"/>
+<text text-anchor="start" x="1270" y="-1590.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="1316" y="-1590.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1437" y="-1590.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1265,-1556 1265,-1581 1526,-1581 1526,-1556 1265,-1556"/>
+<text text-anchor="start" x="1270" y="-1565.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">map_index</text>
+<text text-anchor="start" x="1346" y="-1565.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1423" y="-1565.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1265,-1531 1265,-1556 1526,-1556 1526,-1531 1265,-1531"/>
+<text text-anchor="start" x="1270" y="-1540.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">run_id</text>
+<text text-anchor="start" x="1314" y="-1540.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1435" y="-1540.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1265,-1506 1265,-1531 1526,-1531 1526,-1506 1265,-1506"/>
+<text text-anchor="start" x="1270" y="-1515.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
+<text text-anchor="start" x="1319" y="-1515.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1440" y="-1515.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1265,-1481 1265,-1506 1526,-1506 1526,-1481 1265,-1481"/>
+<text text-anchor="start" x="1270" y="-1490.8" font-family="Helvetica,sans-Serif" font-size="14.00">content</text>
+<text text-anchor="start" x="1323" y="-1490.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
+<polygon fill="none" stroke="black" points="1265,-1456 1265,-1481 1526,-1481 1526,-1456 1265,-1456"/>
+<text text-anchor="start" x="1270" y="-1465.8" font-family="Helvetica,sans-Serif" font-size="14.00">created_at</text>
+<text text-anchor="start" x="1343" y="-1465.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="1439" y="-1465.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1265,-1431 1265,-1456 1526,-1456 1526,-1431 1265,-1431"/>
+<text text-anchor="start" x="1270" y="-1440.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
+<text text-anchor="start" x="1349" y="-1440.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="1445" y="-1440.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1265,-1406 1265,-1431 1526,-1431 1526,-1406 1265,-1406"/>
+<text text-anchor="start" x="1270" y="-1415.8" font-family="Helvetica,sans-Serif" font-size="14.00">user_id</text>
+<text text-anchor="start" x="1321" y="-1415.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
 </g>
 <!-- ab_user&#45;&#45;task_instance_note -->
 <g id="edge5" class="edge">
 <title>ab_user&#45;&#45;task_instance_note</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M763.93,-1817.83C907.14,-1752.8 1122.56,-1654.98 1262.23,-1591.56"/>
-<text text-anchor="start" x="1231.23" y="-1580.36" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="763.93" y="-1806.63" font-family="Times,serif" font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M763.71,-1815.7C905.51,-1749.18 1117.99,-1649.49 1256.33,-1584.59"/>
+<text text-anchor="start" x="1225.33" y="-1573.39" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="763.71" y="-1804.5" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
 <!-- ab_register_user -->
 <g id="node10" class="node">
@@ -927,504 +927,501 @@
 <!-- dag_run&#45;&#45;dag_run_note -->
 <g id="edge19" class="edge">
 <title>dag_run&#45;&#45;dag_run_note</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.63,-1249.96C800.89,-1269.52 837.12,-1290.2 870.82,-1309.42"/>
-<text text-anchor="start" x="860.82" y="-1298.22" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="766.63" y="-1238.76" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.59,-1249.44C799.88,-1268.33 834.98,-1288.25 867.73,-1306.83"/>
+<text text-anchor="start" x="857.73" y="-1295.63" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="766.59" y="-1238.24" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- dagrun_dataset_event -->
 <g id="node27" class="node">
 <title>dagrun_dataset_event</title>
-<polygon fill="none" stroke="black" points="889.5,-1551 889.5,-1579 1129.5,-1579 1129.5,-1551 889.5,-1551"/>
-<text text-anchor="start" x="910" y="-1562.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dagrun_dataset_event</text>
-<polygon fill="none" stroke="black" points="889.5,-1526 889.5,-1551 1129.5,-1551 1129.5,-1526 889.5,-1526"/>
-<text text-anchor="start" x="894.5" y="-1535.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_run_id</text>
-<text text-anchor="start" x="971.5" y="-1535.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1048.5" y="-1535.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="889.5,-1501 889.5,-1526 1129.5,-1526 1129.5,-1501 889.5,-1501"/>
-<text text-anchor="start" x="894.5" y="-1510.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">event_id</text>
-<text text-anchor="start" x="953.5" y="-1510.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1030.5" y="-1510.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="886.5,-1551 886.5,-1579 1126.5,-1579 1126.5,-1551 886.5,-1551"/>
+<text text-anchor="start" x="907" y="-1562.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">dagrun_dataset_event</text>
+<polygon fill="none" stroke="black" points="886.5,-1526 886.5,-1551 1126.5,-1551 1126.5,-1526 886.5,-1526"/>
+<text text-anchor="start" x="891.5" y="-1535.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_run_id</text>
+<text text-anchor="start" x="968.5" y="-1535.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1045.5" y="-1535.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="886.5,-1501 886.5,-1526 1126.5,-1526 1126.5,-1501 886.5,-1501"/>
+<text text-anchor="start" x="891.5" y="-1510.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">event_id</text>
+<text text-anchor="start" x="950.5" y="-1510.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1027.5" y="-1510.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- dag_run&#45;&#45;dagrun_dataset_event -->
 <g id="edge16" class="edge">
 <title>dag_run&#45;&#45;dagrun_dataset_event</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.76,-1400.08C791.28,-1428.33 818.18,-1454.93 847,-1477 857.51,-1485.05 869.18,-1492.19 881.3,-1498.51"/>
-<text text-anchor="start" x="871.3" y="-1487.31" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="766.76" y="-1388.88" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.78,-1396.41C791.38,-1424.78 818.29,-1451.6 847,-1474 857.93,-1482.53 870.12,-1490.13 882.75,-1496.87"/>
+<text text-anchor="start" x="872.75" y="-1485.67" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="766.78" y="-1385.21" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance -->
 <g id="node28" class="node">
 <title>task_instance</title>
-<polygon fill="none" stroke="black" points="855.5,-1181 855.5,-1209 1164.5,-1209 1164.5,-1181 855.5,-1181"/>
-<text text-anchor="start" x="948.5" y="-1192.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_instance</text>
-<polygon fill="none" stroke="black" points="855.5,-1156 855.5,-1181 1164.5,-1181 1164.5,-1156 855.5,-1156"/>
-<text text-anchor="start" x="860.5" y="-1165.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="906.5" y="-1165.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1027.5" y="-1165.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="855.5,-1131 855.5,-1156 1164.5,-1156 1164.5,-1131 855.5,-1131"/>
-<text text-anchor="start" x="860.5" y="-1140.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">map_index</text>
-<text text-anchor="start" x="936.5" y="-1140.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1013.5" y="-1140.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="855.5,-1106 855.5,-1131 1164.5,-1131 1164.5,-1106 855.5,-1106"/>
-<text text-anchor="start" x="860.5" y="-1115.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">run_id</text>
-<text text-anchor="start" x="904.5" y="-1115.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1025.5" y="-1115.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="855.5,-1081 855.5,-1106 1164.5,-1106 1164.5,-1081 855.5,-1081"/>
-<text text-anchor="start" x="860.5" y="-1090.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
-<text text-anchor="start" x="909.5" y="-1090.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1030.5" y="-1090.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="855.5,-1056 855.5,-1081 1164.5,-1081 1164.5,-1056 855.5,-1056"/>
-<text text-anchor="start" x="860.5" y="-1065.8" font-family="Helvetica,sans-Serif" font-size="14.00">custom_operator_name</text>
-<text text-anchor="start" x="1023.5" y="-1065.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
-<polygon fill="none" stroke="black" points="855.5,-1031 855.5,-1056 1164.5,-1056 1164.5,-1031 855.5,-1031"/>
-<text text-anchor="start" x="860.5" y="-1040.8" font-family="Helvetica,sans-Serif" font-size="14.00">duration</text>
-<text text-anchor="start" x="919.5" y="-1040.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [DOUBLE_PRECISION]</text>
-<polygon fill="none" stroke="black" points="855.5,-1006 855.5,-1031 1164.5,-1031 1164.5,-1006 855.5,-1006"/>
-<text text-anchor="start" x="860.5" y="-1015.8" font-family="Helvetica,sans-Serif" font-size="14.00">end_date</text>
-<text text-anchor="start" x="924.5" y="-1015.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="855.5,-981 855.5,-1006 1164.5,-1006 1164.5,-981 855.5,-981"/>
-<text text-anchor="start" x="860.5" y="-990.8" font-family="Helvetica,sans-Serif" font-size="14.00">executor_config</text>
-<text text-anchor="start" x="970.5" y="-990.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BYTEA]</text>
-<polygon fill="none" stroke="black" points="855.5,-956 855.5,-981 1164.5,-981 1164.5,-956 855.5,-956"/>
-<text text-anchor="start" x="860.5" y="-965.8" font-family="Helvetica,sans-Serif" font-size="14.00">external_executor_id</text>
-<text text-anchor="start" x="1003.5" y="-965.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<polygon fill="none" stroke="black" points="855.5,-931 855.5,-956 1164.5,-956 1164.5,-931 855.5,-931"/>
-<text text-anchor="start" x="860.5" y="-940.8" font-family="Helvetica,sans-Serif" font-size="14.00">hostname</text>
-<text text-anchor="start" x="930.5" y="-940.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
-<polygon fill="none" stroke="black" points="855.5,-906 855.5,-931 1164.5,-931 1164.5,-906 855.5,-906"/>
-<text text-anchor="start" x="860.5" y="-915.8" font-family="Helvetica,sans-Serif" font-size="14.00">job_id</text>
-<text text-anchor="start" x="901.5" y="-915.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="855.5,-881 855.5,-906 1164.5,-906 1164.5,-881 855.5,-881"/>
-<text text-anchor="start" x="860.5" y="-890.8" font-family="Helvetica,sans-Serif" font-size="14.00">max_tries</text>
-<text text-anchor="start" x="928.5" y="-890.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="855.5,-856 855.5,-881 1164.5,-881 1164.5,-856 855.5,-856"/>
-<text text-anchor="start" x="860.5" y="-865.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_kwargs</text>
-<text text-anchor="start" x="948.5" y="-865.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
-<polygon fill="none" stroke="black" points="855.5,-831 855.5,-856 1164.5,-856 1164.5,-831 855.5,-831"/>
-<text text-anchor="start" x="860.5" y="-840.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_method</text>
-<text text-anchor="start" x="951.5" y="-840.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
-<polygon fill="none" stroke="black" points="855.5,-806 855.5,-831 1164.5,-831 1164.5,-806 855.5,-806"/>
-<text text-anchor="start" x="860.5" y="-815.8" font-family="Helvetica,sans-Serif" font-size="14.00">operator</text>
-<text text-anchor="start" x="920.5" y="-815.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
-<polygon fill="none" stroke="black" points="855.5,-781 855.5,-806 1164.5,-806 1164.5,-781 855.5,-781"/>
-<text text-anchor="start" x="860.5" y="-790.8" font-family="Helvetica,sans-Serif" font-size="14.00">pid</text>
-<text text-anchor="start" x="882.5" y="-790.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="855.5,-756 855.5,-781 1164.5,-781 1164.5,-756 855.5,-756"/>
-<text text-anchor="start" x="860.5" y="-765.8" font-family="Helvetica,sans-Serif" font-size="14.00">pool</text>
-<text text-anchor="start" x="890.5" y="-765.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
-<text text-anchor="start" x="1011.5" y="-765.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="855.5,-731 855.5,-756 1164.5,-756 1164.5,-731 855.5,-731"/>
-<text text-anchor="start" x="860.5" y="-740.8" font-family="Helvetica,sans-Serif" font-size="14.00">pool_slots</text>
-<text text-anchor="start" x="929.5" y="-740.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1006.5" y="-740.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="855.5,-706 855.5,-731 1164.5,-731 1164.5,-706 855.5,-706"/>
-<text text-anchor="start" x="860.5" y="-715.8" font-family="Helvetica,sans-Serif" font-size="14.00">priority_weight</text>
-<text text-anchor="start" x="964.5" y="-715.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="855.5,-681 855.5,-706 1164.5,-706 1164.5,-681 855.5,-681"/>
-<text text-anchor="start" x="860.5" y="-690.8" font-family="Helvetica,sans-Serif" font-size="14.00">priority_weight_strategy</text>
-<text text-anchor="start" x="1029.5" y="-690.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
-<polygon fill="none" stroke="black" points="855.5,-656 855.5,-681 1164.5,-681 1164.5,-656 855.5,-656"/>
-<text text-anchor="start" x="860.5" y="-665.8" font-family="Helvetica,sans-Serif" font-size="14.00">queue</text>
-<text text-anchor="start" x="904.5" y="-665.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
-<polygon fill="none" stroke="black" points="855.5,-631 855.5,-656 1164.5,-656 1164.5,-631 855.5,-631"/>
-<text text-anchor="start" x="860.5" y="-640.8" font-family="Helvetica,sans-Serif" font-size="14.00">queued_by_job_id</text>
-<text text-anchor="start" x="984.5" y="-640.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="855.5,-606 855.5,-631 1164.5,-631 1164.5,-606 855.5,-606"/>
-<text text-anchor="start" x="860.5" y="-615.8" font-family="Helvetica,sans-Serif" font-size="14.00">queued_dttm</text>
-<text text-anchor="start" x="953.5" y="-615.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="855.5,-581 855.5,-606 1164.5,-606 1164.5,-581 855.5,-581"/>
-<text text-anchor="start" x="860.5" y="-590.8" font-family="Helvetica,sans-Serif" font-size="14.00">start_date</text>
-<text text-anchor="start" x="930.5" y="-590.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="855.5,-556 855.5,-581 1164.5,-581 1164.5,-556 855.5,-556"/>
-<text text-anchor="start" x="860.5" y="-565.8" font-family="Helvetica,sans-Serif" font-size="14.00">state</text>
-<text text-anchor="start" x="895.5" y="-565.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(20)]</text>
-<polygon fill="none" stroke="black" points="855.5,-531 855.5,-556 1164.5,-556 1164.5,-531 855.5,-531"/>
-<text text-anchor="start" x="860.5" y="-540.8" font-family="Helvetica,sans-Serif" font-size="14.00">trigger_id</text>
-<text text-anchor="start" x="927.5" y="-540.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="855.5,-506 855.5,-531 1164.5,-531 1164.5,-506 855.5,-506"/>
-<text text-anchor="start" x="860.5" y="-515.8" font-family="Helvetica,sans-Serif" font-size="14.00">trigger_timeout</text>
-<text text-anchor="start" x="968.5" y="-515.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="855.5,-481 855.5,-506 1164.5,-506 1164.5,-481 855.5,-481"/>
-<text text-anchor="start" x="860.5" y="-490.8" font-family="Helvetica,sans-Serif" font-size="14.00">try_number</text>
-<text text-anchor="start" x="942.5" y="-490.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="855.5,-456 855.5,-481 1164.5,-481 1164.5,-456 855.5,-456"/>
-<text text-anchor="start" x="860.5" y="-465.8" font-family="Helvetica,sans-Serif" font-size="14.00">unixname</text>
-<text text-anchor="start" x="930.5" y="-465.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
-<polygon fill="none" stroke="black" points="855.5,-431 855.5,-456 1164.5,-456 1164.5,-431 855.5,-431"/>
-<text text-anchor="start" x="860.5" y="-440.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
-<text text-anchor="start" x="939.5" y="-440.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="855.5,-1171 855.5,-1199 1158.5,-1199 1158.5,-1171 855.5,-1171"/>
+<text text-anchor="start" x="945.5" y="-1182.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_instance</text>
+<polygon fill="none" stroke="black" points="855.5,-1146 855.5,-1171 1158.5,-1171 1158.5,-1146 855.5,-1146"/>
+<text text-anchor="start" x="860.5" y="-1155.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="906.5" y="-1155.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1027.5" y="-1155.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="855.5,-1121 855.5,-1146 1158.5,-1146 1158.5,-1121 855.5,-1121"/>
+<text text-anchor="start" x="860.5" y="-1130.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">map_index</text>
+<text text-anchor="start" x="936.5" y="-1130.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1013.5" y="-1130.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="855.5,-1096 855.5,-1121 1158.5,-1121 1158.5,-1096 855.5,-1096"/>
+<text text-anchor="start" x="860.5" y="-1105.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">run_id</text>
+<text text-anchor="start" x="904.5" y="-1105.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1025.5" y="-1105.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="855.5,-1071 855.5,-1096 1158.5,-1096 1158.5,-1071 855.5,-1071"/>
+<text text-anchor="start" x="860.5" y="-1080.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
+<text text-anchor="start" x="909.5" y="-1080.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1030.5" y="-1080.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="855.5,-1046 855.5,-1071 1158.5,-1071 1158.5,-1046 855.5,-1046"/>
+<text text-anchor="start" x="860.5" y="-1055.8" font-family="Helvetica,sans-Serif" font-size="14.00">custom_operator_name</text>
+<text text-anchor="start" x="1023.5" y="-1055.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
+<polygon fill="none" stroke="black" points="855.5,-1021 855.5,-1046 1158.5,-1046 1158.5,-1021 855.5,-1021"/>
+<text text-anchor="start" x="860.5" y="-1030.8" font-family="Helvetica,sans-Serif" font-size="14.00">duration</text>
+<text text-anchor="start" x="919.5" y="-1030.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [DOUBLE_PRECISION]</text>
+<polygon fill="none" stroke="black" points="855.5,-996 855.5,-1021 1158.5,-1021 1158.5,-996 855.5,-996"/>
+<text text-anchor="start" x="860.5" y="-1005.8" font-family="Helvetica,sans-Serif" font-size="14.00">end_date</text>
+<text text-anchor="start" x="924.5" y="-1005.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="855.5,-971 855.5,-996 1158.5,-996 1158.5,-971 855.5,-971"/>
+<text text-anchor="start" x="860.5" y="-980.8" font-family="Helvetica,sans-Serif" font-size="14.00">executor_config</text>
+<text text-anchor="start" x="970.5" y="-980.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BYTEA]</text>
+<polygon fill="none" stroke="black" points="855.5,-946 855.5,-971 1158.5,-971 1158.5,-946 855.5,-946"/>
+<text text-anchor="start" x="860.5" y="-955.8" font-family="Helvetica,sans-Serif" font-size="14.00">external_executor_id</text>
+<text text-anchor="start" x="1003.5" y="-955.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<polygon fill="none" stroke="black" points="855.5,-921 855.5,-946 1158.5,-946 1158.5,-921 855.5,-921"/>
+<text text-anchor="start" x="860.5" y="-930.8" font-family="Helvetica,sans-Serif" font-size="14.00">hostname</text>
+<text text-anchor="start" x="930.5" y="-930.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
+<polygon fill="none" stroke="black" points="855.5,-896 855.5,-921 1158.5,-921 1158.5,-896 855.5,-896"/>
+<text text-anchor="start" x="860.5" y="-905.8" font-family="Helvetica,sans-Serif" font-size="14.00">job_id</text>
+<text text-anchor="start" x="901.5" y="-905.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="855.5,-871 855.5,-896 1158.5,-896 1158.5,-871 855.5,-871"/>
+<text text-anchor="start" x="860.5" y="-880.8" font-family="Helvetica,sans-Serif" font-size="14.00">max_tries</text>
+<text text-anchor="start" x="928.5" y="-880.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="855.5,-846 855.5,-871 1158.5,-871 1158.5,-846 855.5,-846"/>
+<text text-anchor="start" x="860.5" y="-855.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_kwargs</text>
+<text text-anchor="start" x="948.5" y="-855.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
+<polygon fill="none" stroke="black" points="855.5,-821 855.5,-846 1158.5,-846 1158.5,-821 855.5,-821"/>
+<text text-anchor="start" x="860.5" y="-830.8" font-family="Helvetica,sans-Serif" font-size="14.00">next_method</text>
+<text text-anchor="start" x="951.5" y="-830.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
+<polygon fill="none" stroke="black" points="855.5,-796 855.5,-821 1158.5,-821 1158.5,-796 855.5,-796"/>
+<text text-anchor="start" x="860.5" y="-805.8" font-family="Helvetica,sans-Serif" font-size="14.00">operator</text>
+<text text-anchor="start" x="920.5" y="-805.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
+<polygon fill="none" stroke="black" points="855.5,-771 855.5,-796 1158.5,-796 1158.5,-771 855.5,-771"/>
+<text text-anchor="start" x="860.5" y="-780.8" font-family="Helvetica,sans-Serif" font-size="14.00">pid</text>
+<text text-anchor="start" x="882.5" y="-780.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="855.5,-746 855.5,-771 1158.5,-771 1158.5,-746 855.5,-746"/>
+<text text-anchor="start" x="860.5" y="-755.8" font-family="Helvetica,sans-Serif" font-size="14.00">pool</text>
+<text text-anchor="start" x="890.5" y="-755.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
+<text text-anchor="start" x="1011.5" y="-755.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="855.5,-721 855.5,-746 1158.5,-746 1158.5,-721 855.5,-721"/>
+<text text-anchor="start" x="860.5" y="-730.8" font-family="Helvetica,sans-Serif" font-size="14.00">pool_slots</text>
+<text text-anchor="start" x="929.5" y="-730.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1006.5" y="-730.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="855.5,-696 855.5,-721 1158.5,-721 1158.5,-696 855.5,-696"/>
+<text text-anchor="start" x="860.5" y="-705.8" font-family="Helvetica,sans-Serif" font-size="14.00">priority_weight</text>
+<text text-anchor="start" x="964.5" y="-705.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="855.5,-671 855.5,-696 1158.5,-696 1158.5,-671 855.5,-671"/>
+<text text-anchor="start" x="860.5" y="-680.8" font-family="Helvetica,sans-Serif" font-size="14.00">queue</text>
+<text text-anchor="start" x="904.5" y="-680.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(256)]</text>
+<polygon fill="none" stroke="black" points="855.5,-646 855.5,-671 1158.5,-671 1158.5,-646 855.5,-646"/>
+<text text-anchor="start" x="860.5" y="-655.8" font-family="Helvetica,sans-Serif" font-size="14.00">queued_by_job_id</text>
+<text text-anchor="start" x="984.5" y="-655.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="855.5,-621 855.5,-646 1158.5,-646 1158.5,-621 855.5,-621"/>
+<text text-anchor="start" x="860.5" y="-630.8" font-family="Helvetica,sans-Serif" font-size="14.00">queued_dttm</text>
+<text text-anchor="start" x="953.5" y="-630.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="855.5,-596 855.5,-621 1158.5,-621 1158.5,-596 855.5,-596"/>
+<text text-anchor="start" x="860.5" y="-605.8" font-family="Helvetica,sans-Serif" font-size="14.00">start_date</text>
+<text text-anchor="start" x="930.5" y="-605.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="855.5,-571 855.5,-596 1158.5,-596 1158.5,-571 855.5,-571"/>
+<text text-anchor="start" x="860.5" y="-580.8" font-family="Helvetica,sans-Serif" font-size="14.00">state</text>
+<text text-anchor="start" x="895.5" y="-580.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(20)]</text>
+<polygon fill="none" stroke="black" points="855.5,-546 855.5,-571 1158.5,-571 1158.5,-546 855.5,-546"/>
+<text text-anchor="start" x="860.5" y="-555.8" font-family="Helvetica,sans-Serif" font-size="14.00">trigger_id</text>
+<text text-anchor="start" x="927.5" y="-555.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="855.5,-521 855.5,-546 1158.5,-546 1158.5,-521 855.5,-521"/>
+<text text-anchor="start" x="860.5" y="-530.8" font-family="Helvetica,sans-Serif" font-size="14.00">trigger_timeout</text>
+<text text-anchor="start" x="968.5" y="-530.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="855.5,-496 855.5,-521 1158.5,-521 1158.5,-496 855.5,-496"/>
+<text text-anchor="start" x="860.5" y="-505.8" font-family="Helvetica,sans-Serif" font-size="14.00">try_number</text>
+<text text-anchor="start" x="942.5" y="-505.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="855.5,-471 855.5,-496 1158.5,-496 1158.5,-471 855.5,-471"/>
+<text text-anchor="start" x="860.5" y="-480.8" font-family="Helvetica,sans-Serif" font-size="14.00">unixname</text>
+<text text-anchor="start" x="930.5" y="-480.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(1000)]</text>
+<polygon fill="none" stroke="black" points="855.5,-446 855.5,-471 1158.5,-471 1158.5,-446 855.5,-446"/>
+<text text-anchor="start" x="860.5" y="-455.8" font-family="Helvetica,sans-Serif" font-size="14.00">updated_at</text>
+<text text-anchor="start" x="939.5" y="-455.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
 </g>
 <!-- dag_run&#45;&#45;task_instance -->
 <g id="edge17" class="edge">
 <title>dag_run&#45;&#45;task_instance</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.63,-1025.4C792.89,-1002.19 820.32,-978.13 846.86,-955.01"/>
-<text text-anchor="start" x="836.86" y="-943.81" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="766.63" y="-1014.2" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.59,-1025.57C792.92,-1002.33 820.39,-978.26 846.93,-955.18"/>
+<text text-anchor="start" x="836.93" y="-943.98" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="766.59" y="-1014.37" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- dag_run&#45;&#45;task_instance -->
 <g id="edge18" class="edge">
 <title>dag_run&#45;&#45;task_instance</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.63,-1038.57C792.89,-1015.74 820.32,-991.73 846.86,-968.32"/>
-<text text-anchor="start" x="836.86" y="-972.12" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="766.63" y="-1042.37" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.59,-1038.75C792.92,-1015.89 820.39,-991.86 846.93,-968.47"/>
+<text text-anchor="start" x="836.93" y="-972.27" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="766.59" y="-1042.55" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_reschedule -->
 <g id="node29" class="node">
 <title>task_reschedule</title>
-<polygon fill="none" stroke="black" points="1253,-1361 1253,-1389 1549,-1389 1549,-1361 1253,-1361"/>
-<text text-anchor="start" x="1328.5" y="-1372.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_reschedule</text>
-<polygon fill="none" stroke="black" points="1253,-1336 1253,-1361 1549,-1361 1549,-1336 1253,-1336"/>
-<text text-anchor="start" x="1258" y="-1345.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1271" y="-1345.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1348" y="-1345.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1253,-1311 1253,-1336 1549,-1336 1549,-1311 1253,-1311"/>
-<text text-anchor="start" x="1258" y="-1320.8" font-family="Helvetica,sans-Serif" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="1304" y="-1320.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1425" y="-1320.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1253,-1286 1253,-1311 1549,-1311 1549,-1286 1253,-1286"/>
-<text text-anchor="start" x="1258" y="-1295.8" font-family="Helvetica,sans-Serif" font-size="14.00">duration</text>
-<text text-anchor="start" x="1317" y="-1295.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1394" y="-1295.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1253,-1261 1253,-1286 1549,-1286 1549,-1261 1253,-1261"/>
-<text text-anchor="start" x="1258" y="-1270.8" font-family="Helvetica,sans-Serif" font-size="14.00">end_date</text>
-<text text-anchor="start" x="1322" y="-1270.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="1418" y="-1270.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1253,-1236 1253,-1261 1549,-1261 1549,-1236 1253,-1236"/>
-<text text-anchor="start" x="1258" y="-1245.8" font-family="Helvetica,sans-Serif" font-size="14.00">map_index</text>
-<text text-anchor="start" x="1334" y="-1245.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1411" y="-1245.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1253,-1211 1253,-1236 1549,-1236 1549,-1211 1253,-1211"/>
-<text text-anchor="start" x="1258" y="-1220.8" font-family="Helvetica,sans-Serif" font-size="14.00">reschedule_date</text>
-<text text-anchor="start" x="1372" y="-1220.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="1468" y="-1220.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1253,-1186 1253,-1211 1549,-1211 1549,-1186 1253,-1186"/>
-<text text-anchor="start" x="1258" y="-1195.8" font-family="Helvetica,sans-Serif" font-size="14.00">run_id</text>
-<text text-anchor="start" x="1302" y="-1195.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1423" y="-1195.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1253,-1161 1253,-1186 1549,-1186 1549,-1161 1253,-1161"/>
-<text text-anchor="start" x="1258" y="-1170.8" font-family="Helvetica,sans-Serif" font-size="14.00">start_date</text>
-<text text-anchor="start" x="1328" y="-1170.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="1424" y="-1170.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1253,-1136 1253,-1161 1549,-1161 1549,-1136 1253,-1136"/>
-<text text-anchor="start" x="1258" y="-1145.8" font-family="Helvetica,sans-Serif" font-size="14.00">task_id</text>
-<text text-anchor="start" x="1307" y="-1145.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1428" y="-1145.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1253,-1111 1253,-1136 1549,-1136 1549,-1111 1253,-1111"/>
-<text text-anchor="start" x="1258" y="-1120.8" font-family="Helvetica,sans-Serif" font-size="14.00">try_number</text>
-<text text-anchor="start" x="1340" y="-1120.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1417" y="-1120.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1247,-1352 1247,-1380 1543,-1380 1543,-1352 1247,-1352"/>
+<text text-anchor="start" x="1322.5" y="-1363.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_reschedule</text>
+<polygon fill="none" stroke="black" points="1247,-1327 1247,-1352 1543,-1352 1543,-1327 1247,-1327"/>
+<text text-anchor="start" x="1252" y="-1336.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1265" y="-1336.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1342" y="-1336.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1247,-1302 1247,-1327 1543,-1327 1543,-1302 1247,-1302"/>
+<text text-anchor="start" x="1252" y="-1311.8" font-family="Helvetica,sans-Serif" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="1298" y="-1311.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1419" y="-1311.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1247,-1277 1247,-1302 1543,-1302 1543,-1277 1247,-1277"/>
+<text text-anchor="start" x="1252" y="-1286.8" font-family="Helvetica,sans-Serif" font-size="14.00">duration</text>
+<text text-anchor="start" x="1311" y="-1286.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1388" y="-1286.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1247,-1252 1247,-1277 1543,-1277 1543,-1252 1247,-1252"/>
+<text text-anchor="start" x="1252" y="-1261.8" font-family="Helvetica,sans-Serif" font-size="14.00">end_date</text>
+<text text-anchor="start" x="1316" y="-1261.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="1412" y="-1261.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1247,-1227 1247,-1252 1543,-1252 1543,-1227 1247,-1227"/>
+<text text-anchor="start" x="1252" y="-1236.8" font-family="Helvetica,sans-Serif" font-size="14.00">map_index</text>
+<text text-anchor="start" x="1328" y="-1236.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1405" y="-1236.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1247,-1202 1247,-1227 1543,-1227 1543,-1202 1247,-1202"/>
+<text text-anchor="start" x="1252" y="-1211.8" font-family="Helvetica,sans-Serif" font-size="14.00">reschedule_date</text>
+<text text-anchor="start" x="1366" y="-1211.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="1462" y="-1211.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1247,-1177 1247,-1202 1543,-1202 1543,-1177 1247,-1177"/>
+<text text-anchor="start" x="1252" y="-1186.8" font-family="Helvetica,sans-Serif" font-size="14.00">run_id</text>
+<text text-anchor="start" x="1296" y="-1186.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1417" y="-1186.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1247,-1152 1247,-1177 1543,-1177 1543,-1152 1247,-1152"/>
+<text text-anchor="start" x="1252" y="-1161.8" font-family="Helvetica,sans-Serif" font-size="14.00">start_date</text>
+<text text-anchor="start" x="1322" y="-1161.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="1418" y="-1161.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1247,-1127 1247,-1152 1543,-1152 1543,-1127 1247,-1127"/>
+<text text-anchor="start" x="1252" y="-1136.8" font-family="Helvetica,sans-Serif" font-size="14.00">task_id</text>
+<text text-anchor="start" x="1301" y="-1136.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1422" y="-1136.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1247,-1102 1247,-1127 1543,-1127 1543,-1102 1247,-1102"/>
+<text text-anchor="start" x="1252" y="-1111.8" font-family="Helvetica,sans-Serif" font-size="14.00">try_number</text>
+<text text-anchor="start" x="1334" y="-1111.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1411" y="-1111.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- dag_run&#45;&#45;task_reschedule -->
 <g id="edge20" class="edge">
 <title>dag_run&#45;&#45;task_reschedule</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.74,-1197.48C793.3,-1203.51 820.83,-1209.09 847,-1213 980.34,-1232.92 1133.56,-1239.42 1244.85,-1242.7"/>
-<text text-anchor="start" x="1213.85" y="-1231.5" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="766.74" y="-1186.28" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.72,-1189.89C793.35,-1194.91 820.9,-1199.62 847,-1203 978.56,-1220.06 1129.17,-1227.13 1239,-1231.5"/>
+<text text-anchor="start" x="1208" y="-1220.3" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="766.72" y="-1178.69" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- dag_run&#45;&#45;task_reschedule -->
 <g id="edge21" class="edge">
 <title>dag_run&#45;&#45;task_reschedule</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.74,-1215.2C793.3,-1221.51 820.83,-1227.09 847,-1231 980.34,-1250.92 1133.56,-1257.42 1244.85,-1257.74"/>
-<text text-anchor="start" x="1213.85" y="-1246.54" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="766.74" y="-1204" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M766.72,-1207.61C793.35,-1212.91 820.9,-1217.62 847,-1221 978.56,-1238.06 1129.17,-1245.13 1239,-1246.59"/>
+<text text-anchor="start" x="1208" y="-1235.39" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="766.72" y="-1196.41" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_instance_note -->
 <g id="edge45" class="edge">
 <title>task_instance&#45;&#45;task_instance_note</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1149.74,-1213.15C1177.06,-1269.84 1208.72,-1325.62 1245,-1375 1254.17,-1387.48 1264.83,-1399.45 1276.19,-1410.87"/>
-<text text-anchor="start" x="1266.19" y="-1399.67" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1139.74" y="-1216.95" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1143.49,-1203.78C1170.82,-1260.57 1202.57,-1316.56 1239,-1366 1248.18,-1378.46 1258.86,-1390.43 1270.23,-1401.84"/>
+<text text-anchor="start" x="1260.23" y="-1390.64" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1133.49" y="-1207.58" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_instance_note -->
 <g id="edge46" class="edge">
 <title>task_instance&#45;&#45;task_instance_note</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1141.32,-1213.1C1170.49,-1276.12 1204.93,-1338.46 1245,-1393 1250.36,-1400.29 1256.22,-1407.41 1262.44,-1414.32"/>
-<text text-anchor="start" x="1252.44" y="-1403.12" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1131.32" y="-1216.9" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1135.08,-1203.71C1164.25,-1266.82 1198.76,-1329.4 1239,-1384 1244.37,-1391.28 1250.24,-1398.39 1256.47,-1405.31"/>
+<text text-anchor="start" x="1246.47" y="-1394.11" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1125.08" y="-1207.51" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_instance_note -->
 <g id="edge47" class="edge">
 <title>task_instance&#45;&#45;task_instance_note</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1133.36,-1213.26C1164.17,-1282.51 1201.22,-1351.42 1245,-1411 1250.36,-1418.29 1256.22,-1425.41 1262.44,-1432.31"/>
-<text text-anchor="start" x="1252.44" y="-1421.11" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1123.36" y="-1217.06" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1127.13,-1203.82C1157.91,-1273.17 1195.04,-1342.35 1239,-1402 1244.37,-1409.28 1250.24,-1416.39 1256.47,-1423.29"/>
+<text text-anchor="start" x="1246.47" y="-1412.09" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1117.13" y="-1207.62" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_instance_note -->
 <g id="edge48" class="edge">
 <title>task_instance&#45;&#45;task_instance_note</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1125.66,-1213.23C1157.94,-1288.77 1197.51,-1364.37 1245,-1429 1250.36,-1436.29 1256.22,-1443.41 1262.44,-1450.29"/>
-<text text-anchor="start" x="1252.44" y="-1439.09" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1115.66" y="-1217.03" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1119.44,-1203.75C1151.67,-1279.38 1191.32,-1355.3 1239,-1420 1244.37,-1427.28 1250.24,-1434.39 1256.47,-1441.27"/>
+<text text-anchor="start" x="1246.47" y="-1430.07" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1109.44" y="-1207.55" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_reschedule -->
 <g id="edge37" class="edge">
 <title>task_instance&#45;&#45;task_reschedule</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.21,-989.73C1196.2,-1017.2 1220.95,-1045.08 1245,-1071 1255.89,-1082.74 1267.44,-1094.78 1279.13,-1106.8"/>
-<text text-anchor="start" x="1248.13" y="-1095.6" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1172.21" y="-978.53" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.3,-982.57C1190.32,-1009.33 1215.07,-1036.6 1239,-1062 1249.98,-1073.66 1261.59,-1085.63 1273.32,-1097.63"/>
+<text text-anchor="start" x="1242.32" y="-1086.43" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1166.3" y="-971.37" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_reschedule -->
 <g id="edge38" class="edge">
 <title>task_instance&#45;&#45;task_reschedule</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.21,-1007.54C1196.2,-1035.2 1220.95,-1063.08 1245,-1089 1250.51,-1094.94 1256.19,-1100.96 1261.97,-1107"/>
-<text text-anchor="start" x="1230.97" y="-1095.8" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1172.21" y="-996.34" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.3,-1000.37C1190.32,-1027.33 1215.07,-1054.6 1239,-1080 1244.56,-1085.9 1250.27,-1091.88 1256.08,-1097.89"/>
+<text text-anchor="start" x="1225.08" y="-1086.69" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1166.3" y="-989.17" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_reschedule -->
 <g id="edge39" class="edge">
 <title>task_instance&#45;&#45;task_reschedule</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.21,-1025.35C1196.11,-1053.09 1220.76,-1080.86 1244.72,-1106.7"/>
-<text text-anchor="start" x="1213.72" y="-1110.5" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1172.21" y="-1014.15" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.3,-1018.17C1190.22,-1045.22 1214.88,-1072.39 1238.72,-1097.7"/>
+<text text-anchor="start" x="1207.72" y="-1101.5" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1166.3" y="-1006.97" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_reschedule -->
 <g id="edge40" class="edge">
 <title>task_instance&#45;&#45;task_reschedule</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.21,-1043.17C1196.11,-1071.09 1220.76,-1098.86 1244.72,-1124.7"/>
-<text text-anchor="start" x="1213.72" y="-1128.5" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1172.21" y="-1031.97" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.3,-1035.97C1190.22,-1063.22 1214.88,-1090.39 1238.72,-1115.7"/>
+<text text-anchor="start" x="1207.72" y="-1119.5" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1166.3" y="-1024.77" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_fail -->
 <g id="node37" class="node">
 <title>task_fail</title>
-<polygon fill="none" stroke="black" points="1273,-395 1273,-423 1529,-423 1529,-395 1273,-395"/>
-<text text-anchor="start" x="1363.5" y="-406.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_fail</text>
-<polygon fill="none" stroke="black" points="1273,-370 1273,-395 1529,-395 1529,-370 1273,-370"/>
-<text text-anchor="start" x="1278" y="-379.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="1291" y="-379.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1368" y="-379.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-345 1273,-370 1529,-370 1529,-345 1273,-345"/>
-<text text-anchor="start" x="1278" y="-354.8" font-family="Helvetica,sans-Serif" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="1324" y="-354.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1445" y="-354.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-320 1273,-345 1529,-345 1529,-320 1273,-320"/>
-<text text-anchor="start" x="1278" y="-329.8" font-family="Helvetica,sans-Serif" font-size="14.00">duration</text>
-<text text-anchor="start" x="1337" y="-329.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="1273,-295 1273,-320 1529,-320 1529,-295 1273,-295"/>
-<text text-anchor="start" x="1278" y="-304.8" font-family="Helvetica,sans-Serif" font-size="14.00">end_date</text>
-<text text-anchor="start" x="1342" y="-304.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="1273,-270 1273,-295 1529,-295 1529,-270 1273,-270"/>
-<text text-anchor="start" x="1278" y="-279.8" font-family="Helvetica,sans-Serif" font-size="14.00">map_index</text>
-<text text-anchor="start" x="1354" y="-279.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1431" y="-279.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-245 1273,-270 1529,-270 1529,-245 1273,-245"/>
-<text text-anchor="start" x="1278" y="-254.8" font-family="Helvetica,sans-Serif" font-size="14.00">run_id</text>
-<text text-anchor="start" x="1322" y="-254.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1443" y="-254.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-220 1273,-245 1529,-245 1529,-220 1273,-220"/>
-<text text-anchor="start" x="1278" y="-229.8" font-family="Helvetica,sans-Serif" font-size="14.00">start_date</text>
-<text text-anchor="start" x="1348" y="-229.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<polygon fill="none" stroke="black" points="1273,-195 1273,-220 1529,-220 1529,-195 1273,-195"/>
-<text text-anchor="start" x="1278" y="-204.8" font-family="Helvetica,sans-Serif" font-size="14.00">task_id</text>
-<text text-anchor="start" x="1327" y="-204.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1448" y="-204.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-386 1267,-414 1523,-414 1523,-386 1267,-386"/>
+<text text-anchor="start" x="1357.5" y="-397.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_fail</text>
+<polygon fill="none" stroke="black" points="1267,-361 1267,-386 1523,-386 1523,-361 1267,-361"/>
+<text text-anchor="start" x="1272" y="-370.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="1285" y="-370.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1362" y="-370.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-336 1267,-361 1523,-361 1523,-336 1267,-336"/>
+<text text-anchor="start" x="1272" y="-345.8" font-family="Helvetica,sans-Serif" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="1318" y="-345.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1439" y="-345.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-311 1267,-336 1523,-336 1523,-311 1267,-311"/>
+<text text-anchor="start" x="1272" y="-320.8" font-family="Helvetica,sans-Serif" font-size="14.00">duration</text>
+<text text-anchor="start" x="1331" y="-320.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="1267,-286 1267,-311 1523,-311 1523,-286 1267,-286"/>
+<text text-anchor="start" x="1272" y="-295.8" font-family="Helvetica,sans-Serif" font-size="14.00">end_date</text>
+<text text-anchor="start" x="1336" y="-295.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="1267,-261 1267,-286 1523,-286 1523,-261 1267,-261"/>
+<text text-anchor="start" x="1272" y="-270.8" font-family="Helvetica,sans-Serif" font-size="14.00">map_index</text>
+<text text-anchor="start" x="1348" y="-270.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1425" y="-270.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-236 1267,-261 1523,-261 1523,-236 1267,-236"/>
+<text text-anchor="start" x="1272" y="-245.8" font-family="Helvetica,sans-Serif" font-size="14.00">run_id</text>
+<text text-anchor="start" x="1316" y="-245.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1437" y="-245.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-211 1267,-236 1523,-236 1523,-211 1267,-211"/>
+<text text-anchor="start" x="1272" y="-220.8" font-family="Helvetica,sans-Serif" font-size="14.00">start_date</text>
+<text text-anchor="start" x="1342" y="-220.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<polygon fill="none" stroke="black" points="1267,-186 1267,-211 1523,-211 1523,-186 1267,-186"/>
+<text text-anchor="start" x="1272" y="-195.8" font-family="Helvetica,sans-Serif" font-size="14.00">task_id</text>
+<text text-anchor="start" x="1321" y="-195.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1442" y="-195.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- task_instance&#45;&#45;task_fail -->
 <g id="edge29" class="edge">
 <title>task_instance&#45;&#45;task_fail</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.01,-504.4C1194.91,-470.9 1219.42,-438.38 1245,-409 1251.28,-401.78 1258,-394.65 1265,-387.71"/>
-<text text-anchor="start" x="1234" y="-376.51" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1172.01" y="-493.2" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.07,-497.93C1188.81,-463.51 1213.27,-430.13 1239,-400 1245.21,-392.72 1251.88,-385.55 1258.83,-378.56"/>
+<text text-anchor="start" x="1227.83" y="-367.36" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1166.07" y="-486.73" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_fail -->
 <g id="edge30" class="edge">
 <title>task_instance&#45;&#45;task_fail</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.01,-522.26C1194.91,-488.9 1219.42,-456.38 1245,-427 1251.28,-419.78 1258,-412.65 1265,-405.68"/>
-<text text-anchor="start" x="1234" y="-394.48" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1172.01" y="-511.06" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.07,-515.79C1188.81,-481.51 1213.27,-448.13 1239,-418 1245.21,-410.72 1251.88,-403.55 1258.83,-396.54"/>
+<text text-anchor="start" x="1227.83" y="-385.34" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1166.07" y="-504.59" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_fail -->
 <g id="edge31" class="edge">
 <title>task_instance&#45;&#45;task_fail</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.19,-539.88C1195.03,-506.73 1219.48,-474.31 1245,-445 1251.28,-437.78 1258,-430.65 1265,-423.66"/>
-<text text-anchor="start" x="1234" y="-412.46" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1172.19" y="-528.68" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.07,-533.66C1188.81,-499.51 1213.27,-466.13 1239,-436 1245.21,-428.72 1251.88,-421.55 1258.83,-414.52"/>
+<text text-anchor="start" x="1227.83" y="-403.32" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1166.07" y="-522.46" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_fail -->
 <g id="edge32" class="edge">
 <title>task_instance&#45;&#45;task_fail</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.19,-557.75C1195.03,-524.73 1219.48,-492.31 1245,-463 1255.62,-450.8 1267.5,-438.84 1279.82,-427.28"/>
-<text text-anchor="start" x="1248.82" y="-431.08" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1172.19" y="-546.55" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.07,-551.53C1188.81,-517.51 1213.27,-484.13 1239,-454 1249.5,-441.7 1261.31,-429.67 1273.59,-418.07"/>
+<text text-anchor="start" x="1242.59" y="-421.87" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1166.07" y="-540.33" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_map -->
 <g id="node38" class="node">
 <title>task_map</title>
-<polygon fill="none" stroke="black" points="1273,-1057 1273,-1085 1529,-1085 1529,-1057 1273,-1057"/>
-<text text-anchor="start" x="1358.5" y="-1068.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_map</text>
-<polygon fill="none" stroke="black" points="1273,-1032 1273,-1057 1529,-1057 1529,-1032 1273,-1032"/>
-<text text-anchor="start" x="1278" y="-1041.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="1324" y="-1041.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1445" y="-1041.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-1007 1273,-1032 1529,-1032 1529,-1007 1273,-1007"/>
-<text text-anchor="start" x="1278" y="-1016.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">map_index</text>
-<text text-anchor="start" x="1354" y="-1016.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1431" y="-1016.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-982 1273,-1007 1529,-1007 1529,-982 1273,-982"/>
-<text text-anchor="start" x="1278" y="-991.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">run_id</text>
-<text text-anchor="start" x="1322" y="-991.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1443" y="-991.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-957 1273,-982 1529,-982 1529,-957 1273,-957"/>
-<text text-anchor="start" x="1278" y="-966.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
-<text text-anchor="start" x="1327" y="-966.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1448" y="-966.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-932 1273,-957 1529,-957 1529,-932 1273,-932"/>
-<text text-anchor="start" x="1278" y="-941.8" font-family="Helvetica,sans-Serif" font-size="14.00">keys</text>
-<text text-anchor="start" x="1310" y="-941.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
-<polygon fill="none" stroke="black" points="1273,-907 1273,-932 1529,-932 1529,-907 1273,-907"/>
-<text text-anchor="start" x="1278" y="-916.8" font-family="Helvetica,sans-Serif" font-size="14.00">length</text>
-<text text-anchor="start" x="1323" y="-916.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1400" y="-916.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-1048 1267,-1076 1523,-1076 1523,-1048 1267,-1048"/>
+<text text-anchor="start" x="1352.5" y="-1059.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">task_map</text>
+<polygon fill="none" stroke="black" points="1267,-1023 1267,-1048 1523,-1048 1523,-1023 1267,-1023"/>
+<text text-anchor="start" x="1272" y="-1032.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="1318" y="-1032.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1439" y="-1032.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-998 1267,-1023 1523,-1023 1523,-998 1267,-998"/>
+<text text-anchor="start" x="1272" y="-1007.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">map_index</text>
+<text text-anchor="start" x="1348" y="-1007.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1425" y="-1007.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-973 1267,-998 1523,-998 1523,-973 1267,-973"/>
+<text text-anchor="start" x="1272" y="-982.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">run_id</text>
+<text text-anchor="start" x="1316" y="-982.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1437" y="-982.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-948 1267,-973 1523,-973 1523,-948 1267,-948"/>
+<text text-anchor="start" x="1272" y="-957.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
+<text text-anchor="start" x="1321" y="-957.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1442" y="-957.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-923 1267,-948 1523,-948 1523,-923 1267,-923"/>
+<text text-anchor="start" x="1272" y="-932.8" font-family="Helvetica,sans-Serif" font-size="14.00">keys</text>
+<text text-anchor="start" x="1304" y="-932.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
+<polygon fill="none" stroke="black" points="1267,-898 1267,-923 1523,-923 1523,-898 1267,-898"/>
+<text text-anchor="start" x="1272" y="-907.8" font-family="Helvetica,sans-Serif" font-size="14.00">length</text>
+<text text-anchor="start" x="1317" y="-907.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1394" y="-907.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- task_instance&#45;&#45;task_map -->
 <g id="edge33" class="edge">
 <title>task_instance&#45;&#45;task_map</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.02,-873C1202.87,-886.44 1234.86,-901.1 1264.78,-915.52"/>
-<text text-anchor="start" x="1254.78" y="-904.32" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1172.02" y="-861.8" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.1,-870.34C1196.93,-882.9 1228.98,-896.68 1258.97,-910.29"/>
+<text text-anchor="start" x="1248.97" y="-899.09" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1166.1" y="-859.14" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_map -->
 <g id="edge34" class="edge">
 <title>task_instance&#45;&#45;task_map</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.02,-886.32C1202.87,-900.1 1234.86,-914.62 1264.78,-928.44"/>
-<text text-anchor="start" x="1254.78" y="-932.24" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1172.02" y="-890.12" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.1,-883.64C1196.93,-896.55 1228.98,-910.21 1258.97,-923.23"/>
+<text text-anchor="start" x="1248.97" y="-927.03" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1166.1" y="-887.44" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_map -->
 <g id="edge35" class="edge">
 <title>task_instance&#45;&#45;task_map</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.02,-899.65C1202.87,-913.75 1234.86,-928.14 1264.78,-941.36"/>
-<text text-anchor="start" x="1254.78" y="-945.16" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1172.02" y="-903.45" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.1,-896.95C1196.93,-910.21 1228.98,-923.75 1258.97,-936.17"/>
+<text text-anchor="start" x="1248.97" y="-939.97" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1166.1" y="-900.75" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;task_map -->
 <g id="edge36" class="edge">
 <title>task_instance&#45;&#45;task_map</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.02,-912.97C1202.87,-927.4 1234.86,-941.66 1264.78,-954.29"/>
-<text text-anchor="start" x="1254.78" y="-958.09" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1172.02" y="-916.77" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.1,-910.25C1196.93,-923.86 1228.98,-937.28 1258.97,-949.11"/>
+<text text-anchor="start" x="1248.97" y="-952.91" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1166.1" y="-914.05" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- xcom -->
 <g id="node39" class="node">
 <title>xcom</title>
-<polygon fill="none" stroke="black" points="1273,-853 1273,-881 1530,-881 1530,-853 1273,-853"/>
-<text text-anchor="start" x="1377" y="-864.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">xcom</text>
-<polygon fill="none" stroke="black" points="1273,-828 1273,-853 1530,-853 1530,-828 1273,-828"/>
-<text text-anchor="start" x="1278" y="-837.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_run_id</text>
-<text text-anchor="start" x="1355" y="-837.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1432" y="-837.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-803 1273,-828 1530,-828 1530,-803 1273,-803"/>
-<text text-anchor="start" x="1278" y="-812.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">key</text>
-<text text-anchor="start" x="1303" y="-812.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(512)]</text>
-<text text-anchor="start" x="1424" y="-812.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-778 1273,-803 1530,-803 1530,-778 1273,-778"/>
-<text text-anchor="start" x="1278" y="-787.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">map_index</text>
-<text text-anchor="start" x="1354" y="-787.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1431" y="-787.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-753 1273,-778 1530,-778 1530,-753 1273,-753"/>
-<text text-anchor="start" x="1278" y="-762.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
-<text text-anchor="start" x="1327" y="-762.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1448" y="-762.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-728 1273,-753 1530,-753 1530,-728 1273,-728"/>
-<text text-anchor="start" x="1278" y="-737.8" font-family="Helvetica,sans-Serif" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="1324" y="-737.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1445" y="-737.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-703 1273,-728 1530,-728 1530,-703 1273,-703"/>
-<text text-anchor="start" x="1278" y="-712.8" font-family="Helvetica,sans-Serif" font-size="14.00">run_id</text>
-<text text-anchor="start" x="1322" y="-712.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1443" y="-712.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-678 1273,-703 1530,-703 1530,-678 1273,-678"/>
-<text text-anchor="start" x="1278" y="-687.8" font-family="Helvetica,sans-Serif" font-size="14.00">timestamp</text>
-<text text-anchor="start" x="1353" y="-687.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
-<text text-anchor="start" x="1449" y="-687.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1273,-653 1273,-678 1530,-678 1530,-653 1273,-653"/>
-<text text-anchor="start" x="1278" y="-662.8" font-family="Helvetica,sans-Serif" font-size="14.00">value</text>
-<text text-anchor="start" x="1316" y="-662.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BYTEA]</text>
+<polygon fill="none" stroke="black" points="1267,-844 1267,-872 1524,-872 1524,-844 1267,-844"/>
+<text text-anchor="start" x="1371" y="-855.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">xcom</text>
+<polygon fill="none" stroke="black" points="1267,-819 1267,-844 1524,-844 1524,-819 1267,-819"/>
+<text text-anchor="start" x="1272" y="-828.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_run_id</text>
+<text text-anchor="start" x="1349" y="-828.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1426" y="-828.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-794 1267,-819 1524,-819 1524,-794 1267,-794"/>
+<text text-anchor="start" x="1272" y="-803.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">key</text>
+<text text-anchor="start" x="1297" y="-803.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(512)]</text>
+<text text-anchor="start" x="1418" y="-803.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-769 1267,-794 1524,-794 1524,-769 1267,-769"/>
+<text text-anchor="start" x="1272" y="-778.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">map_index</text>
+<text text-anchor="start" x="1348" y="-778.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1425" y="-778.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-744 1267,-769 1524,-769 1524,-744 1267,-744"/>
+<text text-anchor="start" x="1272" y="-753.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
+<text text-anchor="start" x="1321" y="-753.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1442" y="-753.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-719 1267,-744 1524,-744 1524,-719 1267,-719"/>
+<text text-anchor="start" x="1272" y="-728.8" font-family="Helvetica,sans-Serif" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="1318" y="-728.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1439" y="-728.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-694 1267,-719 1524,-719 1524,-694 1267,-694"/>
+<text text-anchor="start" x="1272" y="-703.8" font-family="Helvetica,sans-Serif" font-size="14.00">run_id</text>
+<text text-anchor="start" x="1316" y="-703.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1437" y="-703.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-669 1267,-694 1524,-694 1524,-669 1267,-669"/>
+<text text-anchor="start" x="1272" y="-678.8" font-family="Helvetica,sans-Serif" font-size="14.00">timestamp</text>
+<text text-anchor="start" x="1347" y="-678.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [TIMESTAMP]</text>
+<text text-anchor="start" x="1443" y="-678.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1267,-644 1267,-669 1524,-669 1524,-644 1267,-644"/>
+<text text-anchor="start" x="1272" y="-653.8" font-family="Helvetica,sans-Serif" font-size="14.00">value</text>
+<text text-anchor="start" x="1310" y="-653.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [BYTEA]</text>
 </g>
 <!-- task_instance&#45;&#45;xcom -->
 <g id="edge41" class="edge">
 <title>task_instance&#45;&#45;xcom</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.02,-778.04C1202.76,-773.36 1234.65,-769.22 1264.48,-766.05"/>
-<text text-anchor="start" x="1233.48" y="-754.85" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1172.02" y="-766.84" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.1,-776.37C1196.72,-770.7 1228.55,-765.52 1258.36,-761.38"/>
+<text text-anchor="start" x="1227.36" y="-750.18" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1166.1" y="-765.17" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;xcom -->
 <g id="edge42" class="edge">
 <title>task_instance&#45;&#45;xcom</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.02,-791.36C1202.76,-787.01 1234.65,-782.74 1264.48,-778.98"/>
-<text text-anchor="start" x="1254.48" y="-782.78" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1172.02" y="-795.16" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.1,-789.67C1196.72,-784.35 1228.55,-779.06 1258.36,-774.33"/>
+<text text-anchor="start" x="1248.36" y="-778.13" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1166.1" y="-793.47" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;xcom -->
 <g id="edge43" class="edge">
 <title>task_instance&#45;&#45;xcom</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.02,-804.68C1202.76,-800.66 1234.65,-796.26 1264.48,-791.9"/>
-<text text-anchor="start" x="1233.48" y="-795.7" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="1172.02" y="-808.48" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.1,-802.98C1196.72,-798 1228.55,-792.59 1258.36,-787.29"/>
+<text text-anchor="start" x="1227.36" y="-791.09" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="1166.1" y="-806.78" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;xcom -->
 <g id="edge44" class="edge">
 <title>task_instance&#45;&#45;xcom</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.02,-818.01C1202.76,-814.32 1234.65,-809.78 1264.48,-804.83"/>
-<text text-anchor="start" x="1254.48" y="-808.63" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1172.02" y="-821.81" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.1,-816.29C1196.72,-811.66 1228.55,-806.13 1258.36,-800.24"/>
+<text text-anchor="start" x="1248.36" y="-804.04" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1166.1" y="-820.09" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- rendered_task_instance_fields -->
 <g id="node40" class="node">
 <title>rendered_task_instance_fields</title>
-<polygon fill="none" stroke="black" points="1261,-599 1261,-627 1541,-627 1541,-599 1261,-599"/>
-<text text-anchor="start" x="1266" y="-610.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">rendered_task_instance_fields</text>
-<polygon fill="none" stroke="black" points="1261,-574 1261,-599 1541,-599 1541,-574 1261,-574"/>
-<text text-anchor="start" x="1266" y="-583.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
-<text text-anchor="start" x="1312" y="-583.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1433" y="-583.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1261,-549 1261,-574 1541,-574 1541,-549 1261,-549"/>
-<text text-anchor="start" x="1266" y="-558.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">map_index</text>
-<text text-anchor="start" x="1342" y="-558.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="1419" y="-558.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1261,-524 1261,-549 1541,-549 1541,-524 1261,-524"/>
-<text text-anchor="start" x="1266" y="-533.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">run_id</text>
-<text text-anchor="start" x="1310" y="-533.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1431" y="-533.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1261,-499 1261,-524 1541,-524 1541,-499 1261,-499"/>
-<text text-anchor="start" x="1266" y="-508.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
-<text text-anchor="start" x="1315" y="-508.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
-<text text-anchor="start" x="1436" y="-508.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="1261,-474 1261,-499 1541,-499 1541,-474 1261,-474"/>
-<text text-anchor="start" x="1266" y="-483.8" font-family="Helvetica,sans-Serif" font-size="14.00">k8s_pod_yaml</text>
-<text text-anchor="start" x="1365" y="-483.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
-<polygon fill="none" stroke="black" points="1261,-449 1261,-474 1541,-474 1541,-449 1261,-449"/>
-<text text-anchor="start" x="1266" y="-458.8" font-family="Helvetica,sans-Serif" font-size="14.00">rendered_fields</text>
-<text text-anchor="start" x="1373" y="-458.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
-<text text-anchor="start" x="1424" y="-458.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1255,-590 1255,-618 1535,-618 1535,-590 1255,-590"/>
+<text text-anchor="start" x="1260" y="-601.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">rendered_task_instance_fields</text>
+<polygon fill="none" stroke="black" points="1255,-565 1255,-590 1535,-590 1535,-565 1255,-565"/>
+<text text-anchor="start" x="1260" y="-574.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">dag_id</text>
+<text text-anchor="start" x="1306" y="-574.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1427" y="-574.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1255,-540 1255,-565 1535,-565 1535,-540 1255,-540"/>
+<text text-anchor="start" x="1260" y="-549.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">map_index</text>
+<text text-anchor="start" x="1336" y="-549.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="1413" y="-549.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1255,-515 1255,-540 1535,-540 1535,-515 1255,-515"/>
+<text text-anchor="start" x="1260" y="-524.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">run_id</text>
+<text text-anchor="start" x="1304" y="-524.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1425" y="-524.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1255,-490 1255,-515 1535,-515 1535,-490 1255,-490"/>
+<text text-anchor="start" x="1260" y="-499.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">task_id</text>
+<text text-anchor="start" x="1309" y="-499.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [VARCHAR(250)]</text>
+<text text-anchor="start" x="1430" y="-499.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="1255,-465 1255,-490 1535,-490 1535,-465 1255,-465"/>
+<text text-anchor="start" x="1260" y="-474.8" font-family="Helvetica,sans-Serif" font-size="14.00">k8s_pod_yaml</text>
+<text text-anchor="start" x="1359" y="-474.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
+<polygon fill="none" stroke="black" points="1255,-440 1255,-465 1535,-465 1535,-440 1255,-440"/>
+<text text-anchor="start" x="1260" y="-449.8" font-family="Helvetica,sans-Serif" font-size="14.00">rendered_fields</text>
+<text text-anchor="start" x="1367" y="-449.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [JSON]</text>
+<text text-anchor="start" x="1418" y="-449.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
 </g>
 <!-- task_instance&#45;&#45;rendered_task_instance_fields -->
 <g id="edge49" class="edge">
 <title>task_instance&#45;&#45;rendered_task_instance_fields</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.09,-666.84C1196.32,-648.29 1221.16,-629.96 1245,-613 1247.62,-611.13 1250.28,-609.26 1252.96,-607.37"/>
-<text text-anchor="start" x="1242.96" y="-596.17" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1172.09" y="-655.64" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.31,-660.71C1190.33,-641.05 1215.08,-621.71 1239,-604 1241.59,-602.08 1244.21,-600.16 1246.86,-598.24"/>
+<text text-anchor="start" x="1236.86" y="-587.04" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1166.31" y="-649.51" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;rendered_task_instance_fields -->
 <g id="edge50" class="edge">
 <title>task_instance&#45;&#45;rendered_task_instance_fields</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.09,-684.64C1196.32,-666.29 1221.16,-647.96 1245,-631 1247.62,-629.13 1250.28,-627.26 1252.96,-625.37"/>
-<text text-anchor="start" x="1242.96" y="-614.17" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1172.09" y="-673.44" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.31,-678.52C1190.33,-659.05 1215.08,-639.71 1239,-622 1241.59,-620.08 1244.21,-618.16 1246.86,-616.24"/>
+<text text-anchor="start" x="1236.86" y="-605.04" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1166.31" y="-667.32" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;rendered_task_instance_fields -->
 <g id="edge51" class="edge">
 <title>task_instance&#45;&#45;rendered_task_instance_fields</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.09,-702.44C1196.32,-684.29 1221.16,-665.96 1245,-649 1253.27,-643.12 1261.85,-637.14 1270.54,-631.16"/>
-<text text-anchor="start" x="1260.54" y="-634.96" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1172.09" y="-691.24" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.31,-696.32C1190.33,-677.05 1215.08,-657.71 1239,-640 1247.03,-634.06 1255.38,-628.06 1263.87,-622.09"/>
+<text text-anchor="start" x="1253.87" y="-625.89" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1166.31" y="-685.12" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- task_instance&#45;&#45;rendered_task_instance_fields -->
 <g id="edge52" class="edge">
 <title>task_instance&#45;&#45;rendered_task_instance_fields</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1172.09,-720.24C1196.32,-702.29 1221.16,-683.96 1245,-667 1261.54,-655.24 1279.32,-643.08 1296.74,-631.05"/>
-<text text-anchor="start" x="1286.74" y="-634.85" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="1172.09" y="-709.04" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M1166.31,-714.12C1190.33,-695.05 1215.08,-675.71 1239,-658 1255.05,-646.12 1272.42,-634.01 1289.53,-622.09"/>
+<text text-anchor="start" x="1279.53" y="-625.89" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="1166.31" y="-702.92" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- ab_permission -->
 <g id="node30" class="node">
@@ -1466,25 +1463,25 @@
 <!-- ab_permission_view_role -->
 <g id="node32" class="node">
 <title>ab_permission_view_role</title>
-<polygon fill="none" stroke="black" points="893.5,-2256 893.5,-2284 1126.5,-2284 1126.5,-2256 893.5,-2256"/>
-<text text-anchor="start" x="898.5" y="-2267.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_permission_view_role</text>
-<polygon fill="none" stroke="black" points="893.5,-2231 893.5,-2256 1126.5,-2256 1126.5,-2231 893.5,-2231"/>
-<text text-anchor="start" x="898.5" y="-2240.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
-<text text-anchor="start" x="911.5" y="-2240.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<text text-anchor="start" x="988.5" y="-2240.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
-<polygon fill="none" stroke="black" points="893.5,-2206 893.5,-2231 1126.5,-2231 1126.5,-2206 893.5,-2206"/>
-<text text-anchor="start" x="898.5" y="-2215.8" font-family="Helvetica,sans-Serif" font-size="14.00">permission_view_id</text>
-<text text-anchor="start" x="1032.5" y="-2215.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
-<polygon fill="none" stroke="black" points="893.5,-2181 893.5,-2206 1126.5,-2206 1126.5,-2181 893.5,-2181"/>
-<text text-anchor="start" x="898.5" y="-2190.8" font-family="Helvetica,sans-Serif" font-size="14.00">role_id</text>
-<text text-anchor="start" x="944.5" y="-2190.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="890.5,-2256 890.5,-2284 1123.5,-2284 1123.5,-2256 890.5,-2256"/>
+<text text-anchor="start" x="895.5" y="-2267.2" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">ab_permission_view_role</text>
+<polygon fill="none" stroke="black" points="890.5,-2231 890.5,-2256 1123.5,-2256 1123.5,-2231 890.5,-2231"/>
+<text text-anchor="start" x="895.5" y="-2240.8" font-family="Helvetica,sans-Serif" text-decoration="underline" font-size="14.00">id</text>
+<text text-anchor="start" x="908.5" y="-2240.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<text text-anchor="start" x="985.5" y="-2240.8" font-family="Helvetica,sans-Serif" font-size="14.00"> NOT NULL</text>
+<polygon fill="none" stroke="black" points="890.5,-2206 890.5,-2231 1123.5,-2231 1123.5,-2206 890.5,-2206"/>
+<text text-anchor="start" x="895.5" y="-2215.8" font-family="Helvetica,sans-Serif" font-size="14.00">permission_view_id</text>
+<text text-anchor="start" x="1029.5" y="-2215.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
+<polygon fill="none" stroke="black" points="890.5,-2181 890.5,-2206 1123.5,-2206 1123.5,-2181 890.5,-2181"/>
+<text text-anchor="start" x="895.5" y="-2190.8" font-family="Helvetica,sans-Serif" font-size="14.00">role_id</text>
+<text text-anchor="start" x="941.5" y="-2190.8" font-family="Helvetica,sans-Serif" font-size="14.00"> [INTEGER]</text>
 </g>
 <!-- ab_permission_view&#45;&#45;ab_permission_view_role -->
 <g id="edge23" class="edge">
 <title>ab_permission_view&#45;&#45;ab_permission_view_role</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M717.59,-2276.73C768.7,-2269.05 831.06,-2259.67 884.93,-2251.58"/>
-<text text-anchor="start" x="853.93" y="-2240.38" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="717.59" y="-2265.53" font-family="Times,serif" font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M717.57,-2276.61C767.84,-2269 828.94,-2259.74 881.9,-2251.72"/>
+<text text-anchor="start" x="850.9" y="-2240.52" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="717.57" y="-2265.41" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
 <!-- ab_view_menu -->
 <g id="node33" class="node">
@@ -1524,16 +1521,16 @@
 <!-- ab_role&#45;&#45;ab_user_role -->
 <g id="edge25" class="edge">
 <title>ab_role&#45;&#45;ab_user_role</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M742.11,-2135.37C752.97,-2131.39 763.73,-2127.25 774,-2123 820.86,-2103.63 871.27,-2078.81 913.31,-2056.93"/>
-<text text-anchor="start" x="882.31" y="-2045.73" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="742.11" y="-2124.17" font-family="Times,serif" font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M742.13,-2135.43C752.99,-2131.44 763.74,-2127.27 774,-2123 819.91,-2103.88 869.21,-2079.34 910.47,-2057.6"/>
+<text text-anchor="start" x="879.47" y="-2046.4" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="742.13" y="-2124.23" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
 <!-- ab_role&#45;&#45;ab_permission_view_role -->
 <g id="edge26" class="edge">
 <title>ab_role&#45;&#45;ab_permission_view_role</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M742.08,-2193.63C787.81,-2200.39 839.39,-2208.01 884.91,-2214.74"/>
-<text text-anchor="start" x="853.91" y="-2203.54" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="742.08" y="-2182.43" font-family="Times,serif" font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M742.19,-2193.79C786.96,-2200.46 837.28,-2207.95 881.84,-2214.59"/>
+<text text-anchor="start" x="850.84" y="-2203.39" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="742.19" y="-2182.59" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
 <!-- dataset_event -->
 <g id="node35" class="node">
@@ -1572,9 +1569,9 @@
 <!-- dataset_event&#45;&#45;dagrun_dataset_event -->
 <g id="edge27" class="edge">
 <title>dataset_event&#45;&#45;dagrun_dataset_event</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M751.63,-1550.47C793.73,-1548.76 839.95,-1546.87 881.45,-1545.18"/>
-<text text-anchor="start" x="871.45" y="-1533.98" font-family="Times,serif" font-size="14.00">1</text>
-<text text-anchor="start" x="751.63" y="-1539.27" font-family="Times,serif" font-size="14.00">1</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M751.68,-1550.43C792.85,-1548.74 837.9,-1546.88 878.48,-1545.22"/>
+<text text-anchor="start" x="868.48" y="-1534.02" font-family="Times,serif" font-size="14.00">1</text>
+<text text-anchor="start" x="751.68" y="-1539.23" font-family="Times,serif" font-size="14.00">1</text>
 </g>
 <!-- trigger -->
 <g id="node36" class="node">
@@ -1604,9 +1601,9 @@
 <!-- trigger&#45;&#45;task_instance -->
 <g id="edge28" class="edge">
 <title>trigger&#45;&#45;task_instance</title>
-<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M764.67,-813.79C791.57,-814.47 819.75,-815.19 847,-815.89"/>
-<text text-anchor="start" x="816" y="-804.69" font-family="Times,serif" font-size="14.00">0..N</text>
-<text text-anchor="start" x="764.67" y="-802.59" font-family="Times,serif" font-size="14.00">{0,1}</text>
+<path fill="none" stroke="#7f7f7f" stroke-dasharray="5,2" d="M764.64,-814.96C791.5,-815.86 819.6,-816.8 846.74,-817.7"/>
+<text text-anchor="start" x="815.74" y="-806.5" font-family="Times,serif" font-size="14.00">0..N</text>
+<text text-anchor="start" x="764.64" y="-803.76" font-family="Times,serif" font-size="14.00">{0,1}</text>
 </g>
 <!-- session -->
 <g id="node41" class="node">
diff --git a/docs/apache-airflow/migrations-ref.rst b/docs/apache-airflow/migrations-ref.rst
index 44319ce409..2d54b5d996 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                                                  |
 +=================================+===================+===================+==============================================================+
-| ``10b52ebd31f7`` (head)         | ``624ecf3b6a5e``  | ``2.8.0``         | Add processor_subdir to ImportError.                         |
-+---------------------------------+-------------------+-------------------+--------------------------------------------------------------+
-| ``624ecf3b6a5e``                | ``bd5dfbe21f88``  | ``2.8.0``         | add priority_weight_strategy to task_instance                |
+| ``10b52ebd31f7`` (head)         | ``bd5dfbe21f88``  | ``2.8.0``         | Add processor_subdir to ImportError.                         |
 +---------------------------------+-------------------+-------------------+--------------------------------------------------------------+
 | ``bd5dfbe21f88``                | ``f7bf2a57d0a6``  | ``2.8.0``         | Make connection login/password TEXT                          |
 +---------------------------------+-------------------+-------------------+--------------------------------------------------------------+
diff --git a/tests/api_connexion/endpoints/test_task_endpoint.py b/tests/api_connexion/endpoints/test_task_endpoint.py
index d2b717bfc0..b8ef8dc0cf 100644
--- a/tests/api_connexion/endpoints/test_task_endpoint.py
+++ b/tests/api_connexion/endpoints/test_task_endpoint.py
@@ -123,7 +123,6 @@ class TestGetTask(TestTaskEndpoint):
             "pool": "default_pool",
             "pool_slots": 1.0,
             "priority_weight": 1.0,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "retries": 0.0,
             "retry_delay": {"__type": "TimeDelta", "days": 0, "seconds": 300, "microseconds": 0},
@@ -135,7 +134,7 @@ class TestGetTask(TestTaskEndpoint):
             "ui_color": "#e8f7e4",
             "ui_fgcolor": "#000",
             "wait_for_downstream": False,
-            "weight_rule": None,
+            "weight_rule": "downstream",
             "is_mapped": False,
         }
         response = self.client.get(
@@ -159,7 +158,6 @@ class TestGetTask(TestTaskEndpoint):
             "pool": "default_pool",
             "pool_slots": 1.0,
             "priority_weight": 1.0,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "retries": 0.0,
             "retry_delay": {"__type": "TimeDelta", "days": 0, "microseconds": 0, "seconds": 300},
@@ -171,7 +169,7 @@ class TestGetTask(TestTaskEndpoint):
             "ui_color": "#e8f7e4",
             "ui_fgcolor": "#000",
             "wait_for_downstream": False,
-            "weight_rule": None,
+            "weight_rule": "downstream",
         }
         response = self.client.get(
             f"/api/v1/dags/{self.mapped_dag_id}/tasks/{self.mapped_task_id}",
@@ -211,7 +209,6 @@ class TestGetTask(TestTaskEndpoint):
             "pool": "default_pool",
             "pool_slots": 1.0,
             "priority_weight": 1.0,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "retries": 0.0,
             "retry_delay": {"__type": "TimeDelta", "days": 0, "seconds": 300, "microseconds": 0},
@@ -223,7 +220,7 @@ class TestGetTask(TestTaskEndpoint):
             "ui_color": "#e8f7e4",
             "ui_fgcolor": "#000",
             "wait_for_downstream": False,
-            "weight_rule": None,
+            "weight_rule": "downstream",
             "is_mapped": False,
         }
         response = self.client.get(
@@ -287,7 +284,6 @@ class TestGetTasks(TestTaskEndpoint):
                     "pool": "default_pool",
                     "pool_slots": 1.0,
                     "priority_weight": 1.0,
-                    "priority_weight_strategy": "downstream",
                     "queue": "default",
                     "retries": 0.0,
                     "retry_delay": {"__type": "TimeDelta", "days": 0, "seconds": 300, "microseconds": 0},
@@ -299,7 +295,7 @@ class TestGetTasks(TestTaskEndpoint):
                     "ui_color": "#e8f7e4",
                     "ui_fgcolor": "#000",
                     "wait_for_downstream": False,
-                    "weight_rule": None,
+                    "weight_rule": "downstream",
                     "is_mapped": False,
                 },
                 {
@@ -318,7 +314,6 @@ class TestGetTasks(TestTaskEndpoint):
                     "pool": "default_pool",
                     "pool_slots": 1.0,
                     "priority_weight": 1.0,
-                    "priority_weight_strategy": "downstream",
                     "queue": "default",
                     "retries": 0.0,
                     "retry_delay": {"__type": "TimeDelta", "days": 0, "seconds": 300, "microseconds": 0},
@@ -330,7 +325,7 @@ class TestGetTasks(TestTaskEndpoint):
                     "ui_color": "#e8f7e4",
                     "ui_fgcolor": "#000",
                     "wait_for_downstream": False,
-                    "weight_rule": None,
+                    "weight_rule": "downstream",
                     "is_mapped": False,
                 },
             ],
@@ -359,7 +354,6 @@ class TestGetTasks(TestTaskEndpoint):
                     "pool": "default_pool",
                     "pool_slots": 1.0,
                     "priority_weight": 1.0,
-                    "priority_weight_strategy": "downstream",
                     "queue": "default",
                     "retries": 0.0,
                     "retry_delay": {"__type": "TimeDelta", "days": 0, "microseconds": 0, "seconds": 300},
@@ -371,7 +365,7 @@ class TestGetTasks(TestTaskEndpoint):
                     "ui_color": "#e8f7e4",
                     "ui_fgcolor": "#000",
                     "wait_for_downstream": False,
-                    "weight_rule": None,
+                    "weight_rule": "downstream",
                 },
                 {
                     "class_ref": {
@@ -389,7 +383,6 @@ class TestGetTasks(TestTaskEndpoint):
                     "pool": "default_pool",
                     "pool_slots": 1.0,
                     "priority_weight": 1.0,
-                    "priority_weight_strategy": "downstream",
                     "queue": "default",
                     "retries": 0.0,
                     "retry_delay": {"__type": "TimeDelta", "days": 0, "seconds": 300, "microseconds": 0},
@@ -401,7 +394,7 @@ class TestGetTasks(TestTaskEndpoint):
                     "ui_color": "#e8f7e4",
                     "ui_fgcolor": "#000",
                     "wait_for_downstream": False,
-                    "weight_rule": None,
+                    "weight_rule": "downstream",
                     "is_mapped": False,
                 },
             ],
diff --git a/tests/api_connexion/schemas/test_task_schema.py b/tests/api_connexion/schemas/test_task_schema.py
index f76fa439e8..54403ebbf0 100644
--- a/tests/api_connexion/schemas/test_task_schema.py
+++ b/tests/api_connexion/schemas/test_task_schema.py
@@ -46,7 +46,6 @@ class TestTaskSchema:
             "pool": "default_pool",
             "pool_slots": 1.0,
             "priority_weight": 1.0,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "retries": 0.0,
             "retry_delay": {"__type": "TimeDelta", "days": 0, "seconds": 300, "microseconds": 0},
@@ -58,7 +57,7 @@ class TestTaskSchema:
             "ui_color": "#e8f7e4",
             "ui_fgcolor": "#000",
             "wait_for_downstream": False,
-            "weight_rule": None,
+            "weight_rule": "downstream",
             "is_mapped": False,
         }
         assert expected == result
@@ -94,7 +93,6 @@ class TestTaskCollectionSchema:
                     "pool": "default_pool",
                     "pool_slots": 1.0,
                     "priority_weight": 1.0,
-                    "priority_weight_strategy": "downstream",
                     "queue": "default",
                     "retries": 0.0,
                     "retry_delay": {"__type": "TimeDelta", "days": 0, "seconds": 300, "microseconds": 0},
@@ -106,7 +104,7 @@ class TestTaskCollectionSchema:
                     "ui_color": "#e8f7e4",
                     "ui_fgcolor": "#000",
                     "wait_for_downstream": False,
-                    "weight_rule": None,
+                    "weight_rule": "downstream",
                     "is_mapped": False,
                 }
             ],
diff --git a/tests/models/test_baseoperator.py b/tests/models/test_baseoperator.py
index 28b76f3684..fb46fd39c7 100644
--- a/tests/models/test_baseoperator.py
+++ b/tests/models/test_baseoperator.py
@@ -784,20 +784,12 @@ class TestBaseOperator:
 
     def test_weight_rule_default(self):
         op = BaseOperator(task_id="test_task")
-        assert op.weight_rule is None
+        assert WeightRule.DOWNSTREAM == op.weight_rule
 
-    def test_priority_weight_strategy_default(self):
-        op = BaseOperator(task_id="test_task")
-        assert op.priority_weight_strategy == "downstream"
-
-    def test_deprecated_weight_rule_override(self):
+    def test_weight_rule_override(self):
         op = BaseOperator(task_id="test_task", weight_rule="upstream")
         assert WeightRule.UPSTREAM == op.weight_rule
 
-    def test_priority_weight_strategy_override(self):
-        op = BaseOperator(task_id="test_task", priority_weight_strategy="upstream")
-        assert op.priority_weight_strategy == "upstream"
-
     # ensure the default logging config is used for this test, no matter what ran before
     @pytest.mark.usefixtures("reset_logging_config")
     def test_logging_propogated_by_default(self, caplog):
diff --git a/tests/models/test_dag.py b/tests/models/test_dag.py
index ba5a047f56..f7bf1ad6d0 100644
--- a/tests/models/test_dag.py
+++ b/tests/models/test_dag.py
@@ -29,7 +29,6 @@ from contextlib import redirect_stdout
 from datetime import timedelta
 from io import StringIO
 from pathlib import Path
-from typing import TYPE_CHECKING
 from unittest import mock
 from unittest.mock import patch
 
@@ -70,7 +69,6 @@ from airflow.operators.empty import EmptyOperator
 from airflow.operators.python import PythonOperator
 from airflow.operators.subdag import SubDagOperator
 from airflow.security import permissions
-from airflow.task.priority_strategy import PriorityWeightStrategy
 from airflow.templates import NativeEnvironment, SandboxedEnvironment
 from airflow.timetables.base import DagRunInfo, DataInterval, TimeRestriction, Timetable
 from airflow.timetables.simple import (
@@ -95,9 +93,6 @@ from tests.test_utils.db import clear_db_dags, clear_db_datasets, clear_db_runs,
 from tests.test_utils.mapping import expand_mapped_task
 from tests.test_utils.timetables import cron_timetable, delta_timetable
 
-if TYPE_CHECKING:
-    from airflow.models.taskinstance import TaskInstance
-
 pytestmark = pytest.mark.db_test
 
 TEST_DATE = datetime_tz(2015, 1, 2, 0, 0)
@@ -121,11 +116,6 @@ def clear_datasets():
     clear_db_datasets()
 
 
-class TestPriorityWeightStrategy(PriorityWeightStrategy):
-    def get_weight(self, ti: TaskInstance):
-        return 99
-
-
 class TestDag:
     def setup_method(self) -> None:
         clear_db_runs()
@@ -440,16 +430,6 @@ class TestDag:
             with pytest.raises(AirflowException):
                 EmptyOperator(task_id="should_fail", weight_rule="no rule")
 
-    def test_dag_task_custom_weight_strategy(self):
-        with DAG("dag", start_date=DEFAULT_DATE, default_args={"owner": "owner1"}) as dag:
-            task = EmptyOperator(
-                task_id="empty_task",
-                priority_weight_strategy="tests.models.test_dag.TestPriorityWeightStrategy",
-            )
-        dr = dag.create_dagrun(state=None, run_id="test", execution_date=DEFAULT_DATE)
-        ti = dr.get_task_instance(task.task_id)
-        assert ti.priority_weight == 99
-
     def test_get_num_task_instances(self):
         test_dag_id = "test_get_num_task_instances_dag"
         test_task_id = "task_1"
diff --git a/tests/models/test_taskinstance.py b/tests/models/test_taskinstance.py
index a1c4281285..27ce80df1a 100644
--- a/tests/models/test_taskinstance.py
+++ b/tests/models/test_taskinstance.py
@@ -3093,7 +3093,6 @@ class TestTaskInstance:
             "pool_slots": 25,
             "queue": "some_queue_id",
             "priority_weight": 123,
-            "priority_weight_strategy": "downstream",
             "operator": "some_custom_operator",
             "custom_operator_name": "some_custom_operator",
             "queued_dttm": run_date + datetime.timedelta(hours=1),
diff --git a/tests/serialization/test_dag_serialization.py b/tests/serialization/test_dag_serialization.py
index 3c0ce045ee..30407eb945 100644
--- a/tests/serialization/test_dag_serialization.py
+++ b/tests/serialization/test_dag_serialization.py
@@ -1243,7 +1243,6 @@ class TestStringifiedDAGs:
             "pool": "default_pool",
             "pool_slots": 1,
             "priority_weight": 1,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "resources": None,
             "retries": 0,
@@ -1255,7 +1254,7 @@ class TestStringifiedDAGs:
             "trigger_rule": "all_success",
             "wait_for_downstream": False,
             "wait_for_past_depends_before_skipping": False,
-            "weight_rule": None,
+            "weight_rule": "downstream",
         }, """
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
diff --git a/tests/www/views/test_views_tasks.py b/tests/www/views/test_views_tasks.py
index c432daab4c..55568d4d8f 100644
--- a/tests/www/views/test_views_tasks.py
+++ b/tests/www/views/test_views_tasks.py
@@ -1136,7 +1136,6 @@ def test_task_instances(admin_client):
             "pool": "default_pool",
             "pool_slots": 1,
             "priority_weight": 2,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "queued_by_job_id": None,
             "queued_dttm": None,
@@ -1169,7 +1168,6 @@ def test_task_instances(admin_client):
             "pool": "default_pool",
             "pool_slots": 1,
             "priority_weight": 2,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "queued_by_job_id": None,
             "queued_dttm": None,
@@ -1202,7 +1200,6 @@ def test_task_instances(admin_client):
             "pool": "default_pool",
             "pool_slots": 1,
             "priority_weight": 1,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "queued_by_job_id": None,
             "queued_dttm": None,
@@ -1235,7 +1232,6 @@ def test_task_instances(admin_client):
             "pool": "default_pool",
             "pool_slots": 1,
             "priority_weight": 3,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "queued_by_job_id": None,
             "queued_dttm": None,
@@ -1268,7 +1264,6 @@ def test_task_instances(admin_client):
             "pool": "default_pool",
             "pool_slots": 1,
             "priority_weight": 3,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "queued_by_job_id": None,
             "queued_dttm": None,
@@ -1301,7 +1296,6 @@ def test_task_instances(admin_client):
             "pool": "default_pool",
             "pool_slots": 1,
             "priority_weight": 3,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "queued_by_job_id": None,
             "queued_dttm": None,
@@ -1334,7 +1328,6 @@ def test_task_instances(admin_client):
             "pool": "default_pool",
             "pool_slots": 1,
             "priority_weight": 2,
-            "priority_weight_strategy": "downstream",
             "queue": "default",
             "queued_by_job_id": None,
             "queued_dttm": None,