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.
Configuration schema versioning and automatic migration.
Reason: Version upgrade safety
Current: Schema changes may break user settings
Improvement: Automatic conversion from v1 to v2, rollback possible