"""init runtime models Revision ID: 20260422_0001 Revises: Create Date: 2026-04-22 17:20:00 """ from collections.abc import Sequence from alembic import op import sqlalchemy as sa revision: str = "20260422_0001" down_revision: str | None = None branch_labels: Sequence[str] | None = None depends_on: Sequence[str] | None = None def upgrade() -> None: op.create_table( "workflow_run", sa.Column("app_id", sa.String(length=36), nullable=False), sa.Column("app_version_id", sa.String(length=36), nullable=False), sa.Column("workflow_id", sa.String(length=36), nullable=False), sa.Column("workflow_version_id", sa.String(length=36), nullable=False), sa.Column("session_id", sa.String(length=36), nullable=True), sa.Column("parent_run_id", sa.String(length=36), nullable=True), sa.Column("root_run_id", sa.String(length=36), nullable=True), sa.Column("run_type", sa.String(length=32), nullable=False), sa.Column("status", sa.String(length=32), nullable=False), sa.Column("trigger_type", sa.String(length=32), nullable=False), sa.Column("priority", sa.Integer(), nullable=False), sa.Column("current_node_count", sa.Integer(), nullable=False), sa.Column("started_time", sa.DateTime(), nullable=True), sa.Column("finished_time", sa.DateTime(), nullable=True), sa.Column("error_code", sa.String(length=64), nullable=True), sa.Column("error_message", sa.Text(), nullable=True), sa.Column("id", sa.String(length=36), nullable=False), sa.Column("tenant_id", sa.String(length=36), nullable=False), sa.Column("created_by", sa.String(length=36), nullable=True), sa.Column("updated_by", sa.String(length=36), nullable=True), sa.Column("created_time", sa.DateTime(), nullable=False), sa.Column("updated_time", sa.DateTime(), nullable=False), sa.Column("deleted_time", sa.DateTime(), nullable=True), sa.Column("version", sa.Integer(), nullable=False), sa.PrimaryKeyConstraint("id"), ) op.create_index("ix_workflow_run_app_id", "workflow_run", ["app_id"], unique=False) op.create_index("ix_workflow_run_root_run_id", "workflow_run", ["root_run_id"], unique=False) op.create_index("ix_workflow_run_session_id", "workflow_run", ["session_id"], unique=False) op.create_index("ix_workflow_run_status", "workflow_run", ["status"], unique=False) op.create_index("ix_workflow_run_tenant_id", "workflow_run", ["tenant_id"], unique=False) op.create_table( "node_run", sa.Column("run_id", sa.String(length=36), nullable=False), sa.Column("parent_node_run_id", sa.String(length=36), nullable=True), sa.Column("node_id", sa.String(length=128), nullable=False), sa.Column("node_type", sa.String(length=32), nullable=False), sa.Column("attempt_no", sa.Integer(), nullable=False), sa.Column("status", sa.String(length=32), nullable=False), sa.Column("worker_key", sa.String(length=128), nullable=True), sa.Column("lease_expire_time", sa.DateTime(), nullable=True), sa.Column("queued_time", sa.DateTime(), nullable=True), sa.Column("started_time", sa.DateTime(), nullable=True), sa.Column("finished_time", sa.DateTime(), nullable=True), sa.Column("error_code", sa.String(length=64), nullable=True), sa.Column("error_message", sa.Text(), nullable=True), sa.Column("id", sa.String(length=36), nullable=False), sa.Column("tenant_id", sa.String(length=36), nullable=False), sa.Column("created_by", sa.String(length=36), nullable=True), sa.Column("updated_by", sa.String(length=36), nullable=True), sa.Column("created_time", sa.DateTime(), nullable=False), sa.Column("updated_time", sa.DateTime(), nullable=False), sa.Column("deleted_time", sa.DateTime(), nullable=True), sa.Column("version", sa.Integer(), nullable=False), sa.PrimaryKeyConstraint("id"), ) op.create_index("ix_node_run_run_id", "node_run", ["run_id"], unique=False) op.create_index("ix_node_run_status", "node_run", ["status"], unique=False) op.create_index("ix_node_run_tenant_id", "node_run", ["tenant_id"], unique=False) def downgrade() -> None: op.drop_index("ix_node_run_tenant_id", table_name="node_run") op.drop_index("ix_node_run_status", table_name="node_run") op.drop_index("ix_node_run_run_id", table_name="node_run") op.drop_table("node_run") op.drop_index("ix_workflow_run_tenant_id", table_name="workflow_run") op.drop_index("ix_workflow_run_status", table_name="workflow_run") op.drop_index("ix_workflow_run_session_id", table_name="workflow_run") op.drop_index("ix_workflow_run_root_run_id", table_name="workflow_run") op.drop_index("ix_workflow_run_app_id", table_name="workflow_run") op.drop_table("workflow_run")