Skip to main content

ICkModelUpgradeService

Namespace: Meshmakers.Octo.Runtime.Contracts.CkModelMigrations

Service for automatically checking and executing CK model migrations when a new version is loaded

public interface ICkModelUpgradeService

Methods​

UpgradeModelsAsync(String, IEnumerable<CkModelIdVersionRange>, CkMigrationOptions, IReadOnlyDictionary<String, String>, CancellationToken)​

Checks if a tenant needs migration for any of its loaded CK models and executes them

Task<CkModelUpgradeResult> UpgradeModelsAsync(string tenantId, IEnumerable<CkModelIdVersionRange> newModelIds, CkMigrationOptions options, IReadOnlyDictionary<string, string> previouslyInstalledVersions, CancellationToken cancellationToken)

Parameters​

tenantId String
Target tenant identifier

newModelIds IEnumerable<CkModelIdVersionRange>
The new CK model versions being loaded (can be version ranges)

options CkMigrationOptions
Migration execution options

previouslyInstalledVersions IReadOnlyDictionary<String, String>
Optional dictionary of previously installed versions (model name -> version string). This is used as a fallback when no MigrationHistory exists for a model. Should be obtained by calling GetSchemaVersionsAsync BEFORE importing the new CK model.

cancellationToken CancellationToken
Cancellation token

Returns​

Task<CkModelUpgradeResult>
Result of the upgrade check and migration execution

CheckUpgradeNeededAsync(String, String, String, CancellationToken)​

Checks if a tenant needs migration for a specific CK model

Task<CkModelUpgradeInfo> CheckUpgradeNeededAsync(string tenantId, string ckModelName, string targetVersion, CancellationToken cancellationToken)

Parameters​

tenantId String
Target tenant identifier

ckModelName String
Name of the CK model to check

targetVersion String
Target version being loaded

cancellationToken CancellationToken
Cancellation token

Returns​

Task<CkModelUpgradeInfo>
Information about whether migration is needed

GetInstalledVersionsAsync(String, CancellationToken)​

Gets the currently tracked CK model versions for a tenant

Task<IReadOnlyDictionary<string, string>> GetInstalledVersionsAsync(string tenantId, CancellationToken cancellationToken)

Parameters​

tenantId String
Tenant identifier

cancellationToken CancellationToken
Cancellation token

Returns​

Task<IReadOnlyDictionary<String, String>>
Dictionary of model names to their installed versions

RecordInstalledVersionAsync(String, CkModelId, CancellationToken)​

Records that a CK model version has been installed for a tenant (without migration)

Task RecordInstalledVersionAsync(string tenantId, CkModelId modelId, CancellationToken cancellationToken)

Parameters​

tenantId String
Target tenant identifier

modelId CkModelId
The exact CK model version that was installed

cancellationToken CancellationToken
Cancellation token

Returns​

Task