发布

  • [OPIK-6186] [BE] feat: add experiment and dataset migration skip columns to workspaces (#6774)

    frostbyte_neo 发布于 2026-05-20 15:34:46 +00:00

    • [OPIK-6186] [BE] feat: add experiment and dataset migration skip columns to workspaces
    • Migration 000073: add experiment_project_migration_skipped_at /
      experiment_project_migration_skip_reason alongside the existing
      migration_skipped_at / migration_skipped_reason columns; copy any
      existing data into the new columns; keep old columns alive for
      backward compat during rolling deployment.

    • Migration 000074: add dataset_project_migration_skipped_at /
      dataset_project_migration_skip_reason columns (no legacy columns to
      mirror; these are net-new for the upcoming dataset migration job).

    • WorkspacesDAO / WorkspacesService: rename markMigrationSkipped /
      findMigrationSkippedWorkspaceIds / countMigrationSkipped to their
      experiment_project_migration_* equivalents; all UPDATE and INSERT
      statements dual-write to both old and new columns so old pods still
      reading migration_skipped_at see current data during the deployment
      window; add parallel dataset_project_migration_* methods.

    • Workspace record: replace generic migrationSkippedAt/Reason with
      experimentProjectMigrationSkippedAt/Reason +
      datasetProjectMigrationSkippedAt/Reason.

    • ExperimentProjectMigrationService + ExperimentProjectMigrationJobTest:
      update two call sites each to use the renamed service methods.

    • fix: read experiment migration skip status from legacy column during rolling deployment

    • fix: guard UPDATE on legacy column; add legacy fields to Workspace record

    • chore: remove dataset migration methods from prep PR — belong in OPIK-6186

    • chore(test): fix spotless formatting in ExperimentProjectMigrationJobTest

    • [OPIK-6186] [BE] fix: resolve merge conflict and update renamed service calls

    • Resolve unresolved merge marker in ExperimentProjectMigrationService
      by keeping main's markMigrationSkipped helper (the deleted-project
      trap was superseded by OPIK-6579's "assign to Default" behavior).
    • Update the helper's call site to use the renamed
      workspacesService.markExperimentProjectMigrationSkipped.
    • Fix two test references that the OPIK-6186 rename commit missed.
    • [OPIK-6186] [BE] refactor: rename migration_skipped_at/_reason in place

    Per review feedback, replace the dual-write/legacy-column rolling-deploy dance
    with an in-place rename of the workspaces.migration_skipped_at/_reason columns
    to experiment_project_migration_skipped_at/_skip_reason (plus the supporting
    index). The migration job is idle outside of migration runs, so there are no
    concurrent writers to worry about during the rolling deployment window.

    • 000073: now CHANGE COLUMN + RENAME INDEX (VARCHAR(255) preserved)
    • 000074: dataset_project_migration_skip_reason widened to VARCHAR(255) to
      stay symmetric with the renamed experiment column
    • WorkspacesDAO: single-column writes/reads on the renamed columns
    • Workspace record: legacy migrationSkippedAt/Reason fields removed
    • Update and rename 000074_add_dataset_migration_columns_to_workspaces.sql to 000075_add_dataset_migration_columns_to_workspaces.sql

    • Update and rename 000073_rename_experiment_migration_columns_in_workspaces.sql to 000074_rename_experiment_migration_columns_in_workspaces.sql

    下载附件