diff --git a/src/dstack/_internal/server/migrations/versions/2026/04_03_1043_ad8c50120507_add_jobmetricspoint_job_id_index.py b/src/dstack/_internal/server/migrations/versions/2026/04_03_1043_ad8c50120507_add_jobmetricspoint_job_id_index.py new file mode 100644 index 000000000..858b176d1 --- /dev/null +++ b/src/dstack/_internal/server/migrations/versions/2026/04_03_1043_ad8c50120507_add_jobmetricspoint_job_id_index.py @@ -0,0 +1,31 @@ +"""Add JobMetricsPoint.job_id index + +Revision ID: ad8c50120507 +Revises: e9d81c97c042 +Create Date: 2026-04-03 10:43:18.440334+00:00 + +""" + +from alembic import op + +# revision identifiers, used by Alembic. +revision = "ad8c50120507" +down_revision = "e9d81c97c042" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table("job_metrics_points", schema=None) as batch_op: + batch_op.create_index(batch_op.f("ix_job_metrics_points_job_id"), ["job_id"], unique=False) + + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table("job_metrics_points", schema=None) as batch_op: + batch_op.drop_index(batch_op.f("ix_job_metrics_points_job_id")) + + # ### end Alembic commands ### diff --git a/src/dstack/_internal/server/models.py b/src/dstack/_internal/server/models.py index 45ab93096..1e4ded30c 100644 --- a/src/dstack/_internal/server/models.py +++ b/src/dstack/_internal/server/models.py @@ -958,7 +958,7 @@ class JobMetricsPoint(BaseModel): UUIDType(binary=False), primary_key=True, default=uuid.uuid4 ) - job_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("jobs.id")) + job_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("jobs.id"), index=True) job: Mapped["JobModel"] = relationship() timestamp_micro: Mapped[int] = mapped_column(BigInteger)