|
|
@@ -0,0 +1,163 @@
|
|
|
+"""init skill models
|
|
|
+
|
|
|
+Revision ID: 20260425_0001
|
|
|
+Revises:
|
|
|
+Create Date: 2026-04-25 15:10:00
|
|
|
+"""
|
|
|
+
|
|
|
+from collections.abc import Sequence
|
|
|
+
|
|
|
+from alembic import op
|
|
|
+import sqlalchemy as sa
|
|
|
+
|
|
|
+
|
|
|
+revision: str = "20260425_0001"
|
|
|
+down_revision: str | None = None
|
|
|
+branch_labels: Sequence[str] | None = None
|
|
|
+depends_on: Sequence[str] | None = None
|
|
|
+
|
|
|
+
|
|
|
+def upgrade() -> None:
|
|
|
+ op.create_table(
|
|
|
+ "skill_definition",
|
|
|
+ sa.Column("code", sa.String(length=64), nullable=False),
|
|
|
+ sa.Column("name", sa.String(length=128), nullable=False),
|
|
|
+ sa.Column("skill_type", sa.String(length=32), nullable=False),
|
|
|
+ sa.Column("description", sa.Text(), nullable=True),
|
|
|
+ sa.Column("status", sa.String(length=32), nullable=False),
|
|
|
+ sa.Column("owner_user_id", sa.String(length=36), nullable=True),
|
|
|
+ sa.Column("metadata_json", sa.JSON(), 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_skill_definition_code", "skill_definition", ["code"], unique=False)
|
|
|
+ op.create_index("ix_skill_definition_skill_type", "skill_definition", ["skill_type"], unique=False)
|
|
|
+ op.create_index("ix_skill_definition_status", "skill_definition", ["status"], unique=False)
|
|
|
+ op.create_index("ix_skill_definition_tenant_id", "skill_definition", ["tenant_id"], unique=False)
|
|
|
+
|
|
|
+ op.create_table(
|
|
|
+ "skill_version",
|
|
|
+ sa.Column("skill_id", sa.String(length=36), nullable=False),
|
|
|
+ sa.Column("version_no", sa.Integer(), nullable=False),
|
|
|
+ sa.Column("status", sa.String(length=32), nullable=False),
|
|
|
+ sa.Column("runtime_type", sa.String(length=32), nullable=False),
|
|
|
+ sa.Column("entrypoint", sa.String(length=128), nullable=True),
|
|
|
+ sa.Column("parameter_schema_json", sa.JSON(), nullable=False),
|
|
|
+ sa.Column("output_schema_json", sa.JSON(), nullable=False),
|
|
|
+ sa.Column("implementation_json", sa.JSON(), nullable=False),
|
|
|
+ sa.Column("published_time", sa.DateTime(), 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_skill_version_skill_id", "skill_version", ["skill_id"], unique=False)
|
|
|
+ op.create_index("ix_skill_version_status", "skill_version", ["status"], unique=False)
|
|
|
+ op.create_index("ix_skill_version_tenant_id", "skill_version", ["tenant_id"], unique=False)
|
|
|
+
|
|
|
+ op.create_table(
|
|
|
+ "skill_installation",
|
|
|
+ sa.Column("skill_id", sa.String(length=36), nullable=False),
|
|
|
+ sa.Column("skill_version_id", sa.String(length=36), nullable=False),
|
|
|
+ sa.Column("install_scope", sa.String(length=32), nullable=False),
|
|
|
+ sa.Column("scope_id", sa.String(length=64), nullable=False),
|
|
|
+ sa.Column("status", sa.String(length=32), nullable=False),
|
|
|
+ sa.Column("config_json", sa.JSON(), nullable=False),
|
|
|
+ sa.Column("installed_by", sa.String(length=36), nullable=True),
|
|
|
+ sa.Column("installed_time", sa.DateTime(), 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_skill_installation_skill_id", "skill_installation", ["skill_id"], unique=False)
|
|
|
+ op.create_index(
|
|
|
+ "ix_skill_installation_skill_version_id",
|
|
|
+ "skill_installation",
|
|
|
+ ["skill_version_id"],
|
|
|
+ unique=False,
|
|
|
+ )
|
|
|
+ op.create_index(
|
|
|
+ "ix_skill_installation_install_scope",
|
|
|
+ "skill_installation",
|
|
|
+ ["install_scope"],
|
|
|
+ unique=False,
|
|
|
+ )
|
|
|
+ op.create_index("ix_skill_installation_scope_id", "skill_installation", ["scope_id"], unique=False)
|
|
|
+ op.create_index("ix_skill_installation_status", "skill_installation", ["status"], unique=False)
|
|
|
+ op.create_index("ix_skill_installation_tenant_id", "skill_installation", ["tenant_id"], unique=False)
|
|
|
+
|
|
|
+ op.create_table(
|
|
|
+ "skill_run",
|
|
|
+ sa.Column("skill_id", sa.String(length=36), nullable=False),
|
|
|
+ sa.Column("skill_version_id", sa.String(length=36), nullable=False),
|
|
|
+ sa.Column("installation_id", sa.String(length=36), nullable=True),
|
|
|
+ sa.Column("status", sa.String(length=32), nullable=False),
|
|
|
+ sa.Column("input_json", sa.JSON(), nullable=False),
|
|
|
+ sa.Column("output_json", sa.JSON(), nullable=True),
|
|
|
+ sa.Column("output_text", sa.Text(), nullable=True),
|
|
|
+ sa.Column("worker_key", sa.String(length=128), 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_skill_run_skill_id", "skill_run", ["skill_id"], unique=False)
|
|
|
+ op.create_index("ix_skill_run_skill_version_id", "skill_run", ["skill_version_id"], unique=False)
|
|
|
+ op.create_index("ix_skill_run_installation_id", "skill_run", ["installation_id"], unique=False)
|
|
|
+ op.create_index("ix_skill_run_status", "skill_run", ["status"], unique=False)
|
|
|
+ op.create_index("ix_skill_run_tenant_id", "skill_run", ["tenant_id"], unique=False)
|
|
|
+
|
|
|
+
|
|
|
+def downgrade() -> None:
|
|
|
+ op.drop_index("ix_skill_run_tenant_id", table_name="skill_run")
|
|
|
+ op.drop_index("ix_skill_run_status", table_name="skill_run")
|
|
|
+ op.drop_index("ix_skill_run_installation_id", table_name="skill_run")
|
|
|
+ op.drop_index("ix_skill_run_skill_version_id", table_name="skill_run")
|
|
|
+ op.drop_index("ix_skill_run_skill_id", table_name="skill_run")
|
|
|
+ op.drop_table("skill_run")
|
|
|
+
|
|
|
+ op.drop_index("ix_skill_installation_tenant_id", table_name="skill_installation")
|
|
|
+ op.drop_index("ix_skill_installation_status", table_name="skill_installation")
|
|
|
+ op.drop_index("ix_skill_installation_scope_id", table_name="skill_installation")
|
|
|
+ op.drop_index("ix_skill_installation_install_scope", table_name="skill_installation")
|
|
|
+ op.drop_index("ix_skill_installation_skill_version_id", table_name="skill_installation")
|
|
|
+ op.drop_index("ix_skill_installation_skill_id", table_name="skill_installation")
|
|
|
+ op.drop_table("skill_installation")
|
|
|
+
|
|
|
+ op.drop_index("ix_skill_version_tenant_id", table_name="skill_version")
|
|
|
+ op.drop_index("ix_skill_version_status", table_name="skill_version")
|
|
|
+ op.drop_index("ix_skill_version_skill_id", table_name="skill_version")
|
|
|
+ op.drop_table("skill_version")
|
|
|
+
|
|
|
+ op.drop_index("ix_skill_definition_tenant_id", table_name="skill_definition")
|
|
|
+ op.drop_index("ix_skill_definition_status", table_name="skill_definition")
|
|
|
+ op.drop_index("ix_skill_definition_skill_type", table_name="skill_definition")
|
|
|
+ op.drop_index("ix_skill_definition_code", table_name="skill_definition")
|
|
|
+ op.drop_table("skill_definition")
|