code: def upgrade():
      # ### commands auto generated by Alembic - please adjust! ###
      op.add_column(
          "experiment",
          sa.Column("description", sa.Text(), nullable=True),
      )
      op.add_column(
          "note",
          sa.Column("experiment_id", sa.Integer(), nullable=True),
      )
  
      with op.batch_alter_table("note") as batch_op:
          batch_op.create_foreign_key(
              "fk_experiment_note",
              "experiment",
              ["experiment_id"],
              ["id"],
          )
  
      op.create_table(
          "run_info",
          sa.Column(
              "id", sa.Integer(), autoincrement=True, nullable=False
          ),
          sa.Column("run_id", sa.Integer(), nullable=True),
          sa.Column("created_at", sa.DateTime(), nullable=True),
          sa.Column("updated_at", sa.DateTime(), nullable=True),
          sa.Column(
              "last_notification_index", sa.Integer(), nullable=True
          ),
          sa.ForeignKeyConstraint(
              ["run_id"],
              ["run.id"],
          ),
          sa.PrimaryKeyConstraint("id"),
      )
  
imports: from alembic import op
  import sqlalchemy
label_desc: Use image node_id 1 for calling a global function with example usage: upgrade() without return types