code: def upgrade():
      """Add model for task log template and establish fk on task instance."""
      op.create_table(
          "log_template",
          Column("id", Integer, primary_key=True, autoincrement=True),
          Column("filename", Text, nullable=False),
          Column("elasticsearch_id", Text, nullable=False),
          Column("created_at", UtcDateTime, nullable=False),
      )
      dag_run_log_filename_id = Column(
          "log_template_id",
          Integer,
          ForeignKey(
              "log_template.id",
              name="task_instance_log_template_id_fkey",
              ondelete="NO ACTION",
          ),
      )
  
      with disable_sqlite_fkeys(op), op.batch_alter_table(
          "dag_run"
      ) as batch_op:
          batch_op.add_column(dag_run_log_filename_id)
  
imports: from __future__ import annotations
  from alembic import op
  from sqlalchemy import Column, ForeignKey, Integer, Text
  from airflow.migrations.utils import disable_sqlite_fkeys
  from airflow.utils.sqlalchemy import UtcDateTime
label_desc: Use image node_id 1 for calling a global function with example usage: upgrade() without return types