Skip to content

Migration System(Schema Version) #193

@KubrickCode

Description

@KubrickCode

Configuration schema versioning and automatic migration.

type Migration = {
  version: number;
  name: string;
  up: (data: ConfigData) => Promise<ConfigData>;
  down: (data: ConfigData) => Promise<ConfigData>;
  validate?: (data: ConfigData) => Promise<boolean>;
};

class MigrationManager {
  async migrate(targetVersion?: number): Promise<MigrationResult>;
  async rollback(steps?: number): Promise<MigrationResult>;
  async dryRun(targetVersion: number): Promise<MigrationPlan>;
}

Reason: Version upgrade safety
Current: Schema changes may break user settings
Improvement: Automatic conversion from v1 to v2, rollback possible

  • Improvements can be made without fear of breaking changes.

Metadata

Metadata

Assignees

Labels

improvementImprovements to existing featuresrefactorRefactoring code

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions