20260425_0001_init_skill_models.py 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. """init skill models
  2. Revision ID: 20260425_0001
  3. Revises:
  4. Create Date: 2026-04-25 15:10:00
  5. """
  6. from collections.abc import Sequence
  7. from alembic import op
  8. import sqlalchemy as sa
  9. revision: str = "20260425_0001"
  10. down_revision: str | None = None
  11. branch_labels: Sequence[str] | None = None
  12. depends_on: Sequence[str] | None = None
  13. def upgrade() -> None:
  14. op.create_table(
  15. "skill_definition",
  16. sa.Column("code", sa.String(length=64), nullable=False),
  17. sa.Column("name", sa.String(length=128), nullable=False),
  18. sa.Column("skill_type", sa.String(length=32), nullable=False),
  19. sa.Column("description", sa.Text(), nullable=True),
  20. sa.Column("status", sa.String(length=32), nullable=False),
  21. sa.Column("owner_user_id", sa.String(length=36), nullable=True),
  22. sa.Column("metadata_json", sa.JSON(), nullable=True),
  23. sa.Column("id", sa.String(length=36), nullable=False),
  24. sa.Column("tenant_id", sa.String(length=36), nullable=False),
  25. sa.Column("created_by", sa.String(length=36), nullable=True),
  26. sa.Column("updated_by", sa.String(length=36), nullable=True),
  27. sa.Column("created_time", sa.DateTime(), nullable=False),
  28. sa.Column("updated_time", sa.DateTime(), nullable=False),
  29. sa.Column("deleted_time", sa.DateTime(), nullable=True),
  30. sa.Column("version", sa.Integer(), nullable=False),
  31. sa.PrimaryKeyConstraint("id"),
  32. )
  33. op.create_index("ix_skill_definition_code", "skill_definition", ["code"], unique=False)
  34. op.create_index("ix_skill_definition_skill_type", "skill_definition", ["skill_type"], unique=False)
  35. op.create_index("ix_skill_definition_status", "skill_definition", ["status"], unique=False)
  36. op.create_index("ix_skill_definition_tenant_id", "skill_definition", ["tenant_id"], unique=False)
  37. op.create_table(
  38. "skill_version",
  39. sa.Column("skill_id", sa.String(length=36), nullable=False),
  40. sa.Column("version_no", sa.Integer(), nullable=False),
  41. sa.Column("status", sa.String(length=32), nullable=False),
  42. sa.Column("runtime_type", sa.String(length=32), nullable=False),
  43. sa.Column("entrypoint", sa.String(length=128), nullable=True),
  44. sa.Column("parameter_schema_json", sa.JSON(), nullable=False),
  45. sa.Column("output_schema_json", sa.JSON(), nullable=False),
  46. sa.Column("implementation_json", sa.JSON(), nullable=False),
  47. sa.Column("published_time", sa.DateTime(), nullable=True),
  48. sa.Column("id", sa.String(length=36), nullable=False),
  49. sa.Column("tenant_id", sa.String(length=36), nullable=False),
  50. sa.Column("created_by", sa.String(length=36), nullable=True),
  51. sa.Column("updated_by", sa.String(length=36), nullable=True),
  52. sa.Column("created_time", sa.DateTime(), nullable=False),
  53. sa.Column("updated_time", sa.DateTime(), nullable=False),
  54. sa.Column("deleted_time", sa.DateTime(), nullable=True),
  55. sa.Column("version", sa.Integer(), nullable=False),
  56. sa.PrimaryKeyConstraint("id"),
  57. )
  58. op.create_index("ix_skill_version_skill_id", "skill_version", ["skill_id"], unique=False)
  59. op.create_index("ix_skill_version_status", "skill_version", ["status"], unique=False)
  60. op.create_index("ix_skill_version_tenant_id", "skill_version", ["tenant_id"], unique=False)
  61. op.create_table(
  62. "skill_installation",
  63. sa.Column("skill_id", sa.String(length=36), nullable=False),
  64. sa.Column("skill_version_id", sa.String(length=36), nullable=False),
  65. sa.Column("install_scope", sa.String(length=32), nullable=False),
  66. sa.Column("scope_id", sa.String(length=64), nullable=False),
  67. sa.Column("status", sa.String(length=32), nullable=False),
  68. sa.Column("config_json", sa.JSON(), nullable=False),
  69. sa.Column("installed_by", sa.String(length=36), nullable=True),
  70. sa.Column("installed_time", sa.DateTime(), nullable=True),
  71. sa.Column("id", sa.String(length=36), nullable=False),
  72. sa.Column("tenant_id", sa.String(length=36), nullable=False),
  73. sa.Column("created_by", sa.String(length=36), nullable=True),
  74. sa.Column("updated_by", sa.String(length=36), nullable=True),
  75. sa.Column("created_time", sa.DateTime(), nullable=False),
  76. sa.Column("updated_time", sa.DateTime(), nullable=False),
  77. sa.Column("deleted_time", sa.DateTime(), nullable=True),
  78. sa.Column("version", sa.Integer(), nullable=False),
  79. sa.PrimaryKeyConstraint("id"),
  80. )
  81. op.create_index("ix_skill_installation_skill_id", "skill_installation", ["skill_id"], unique=False)
  82. op.create_index(
  83. "ix_skill_installation_skill_version_id",
  84. "skill_installation",
  85. ["skill_version_id"],
  86. unique=False,
  87. )
  88. op.create_index(
  89. "ix_skill_installation_install_scope",
  90. "skill_installation",
  91. ["install_scope"],
  92. unique=False,
  93. )
  94. op.create_index("ix_skill_installation_scope_id", "skill_installation", ["scope_id"], unique=False)
  95. op.create_index("ix_skill_installation_status", "skill_installation", ["status"], unique=False)
  96. op.create_index("ix_skill_installation_tenant_id", "skill_installation", ["tenant_id"], unique=False)
  97. op.create_table(
  98. "skill_run",
  99. sa.Column("skill_id", sa.String(length=36), nullable=False),
  100. sa.Column("skill_version_id", sa.String(length=36), nullable=False),
  101. sa.Column("installation_id", sa.String(length=36), nullable=True),
  102. sa.Column("status", sa.String(length=32), nullable=False),
  103. sa.Column("input_json", sa.JSON(), nullable=False),
  104. sa.Column("output_json", sa.JSON(), nullable=True),
  105. sa.Column("output_text", sa.Text(), nullable=True),
  106. sa.Column("worker_key", sa.String(length=128), nullable=True),
  107. sa.Column("started_time", sa.DateTime(), nullable=True),
  108. sa.Column("finished_time", sa.DateTime(), nullable=True),
  109. sa.Column("error_code", sa.String(length=64), nullable=True),
  110. sa.Column("error_message", sa.Text(), nullable=True),
  111. sa.Column("id", sa.String(length=36), nullable=False),
  112. sa.Column("tenant_id", sa.String(length=36), nullable=False),
  113. sa.Column("created_by", sa.String(length=36), nullable=True),
  114. sa.Column("updated_by", sa.String(length=36), nullable=True),
  115. sa.Column("created_time", sa.DateTime(), nullable=False),
  116. sa.Column("updated_time", sa.DateTime(), nullable=False),
  117. sa.Column("deleted_time", sa.DateTime(), nullable=True),
  118. sa.Column("version", sa.Integer(), nullable=False),
  119. sa.PrimaryKeyConstraint("id"),
  120. )
  121. op.create_index("ix_skill_run_skill_id", "skill_run", ["skill_id"], unique=False)
  122. op.create_index("ix_skill_run_skill_version_id", "skill_run", ["skill_version_id"], unique=False)
  123. op.create_index("ix_skill_run_installation_id", "skill_run", ["installation_id"], unique=False)
  124. op.create_index("ix_skill_run_status", "skill_run", ["status"], unique=False)
  125. op.create_index("ix_skill_run_tenant_id", "skill_run", ["tenant_id"], unique=False)
  126. def downgrade() -> None:
  127. op.drop_index("ix_skill_run_tenant_id", table_name="skill_run")
  128. op.drop_index("ix_skill_run_status", table_name="skill_run")
  129. op.drop_index("ix_skill_run_installation_id", table_name="skill_run")
  130. op.drop_index("ix_skill_run_skill_version_id", table_name="skill_run")
  131. op.drop_index("ix_skill_run_skill_id", table_name="skill_run")
  132. op.drop_table("skill_run")
  133. op.drop_index("ix_skill_installation_tenant_id", table_name="skill_installation")
  134. op.drop_index("ix_skill_installation_status", table_name="skill_installation")
  135. op.drop_index("ix_skill_installation_scope_id", table_name="skill_installation")
  136. op.drop_index("ix_skill_installation_install_scope", table_name="skill_installation")
  137. op.drop_index("ix_skill_installation_skill_version_id", table_name="skill_installation")
  138. op.drop_index("ix_skill_installation_skill_id", table_name="skill_installation")
  139. op.drop_table("skill_installation")
  140. op.drop_index("ix_skill_version_tenant_id", table_name="skill_version")
  141. op.drop_index("ix_skill_version_status", table_name="skill_version")
  142. op.drop_index("ix_skill_version_skill_id", table_name="skill_version")
  143. op.drop_table("skill_version")
  144. op.drop_index("ix_skill_definition_tenant_id", table_name="skill_definition")
  145. op.drop_index("ix_skill_definition_status", table_name="skill_definition")
  146. op.drop_index("ix_skill_definition_skill_type", table_name="skill_definition")
  147. op.drop_index("ix_skill_definition_code", table_name="skill_definition")
  148. op.drop_table("skill_definition")