cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
90 lines • 3.02 kB
TypeScript
/**
* Менеджер миграций для CSElement
* Поддерживает версионирование схем и автоматическое применение миграций
*/
import { EventEmitter } from 'events';
import { TypedElementManager } from '../typed-elements/TypedElementManager';
import { IMigration, IMigrationManager, IMigrationStorage, IVersionUtils, MigrationPlan, MigrationRecord, MigrationResult, SchemaMigrationConfig, DataMigrationConfig } from '../types/migration-interfaces';
/**
* Реализация менеджера миграций
*/
export declare class MigrationManager extends EventEmitter implements IMigrationManager {
private migrations;
private storage;
private versionUtils;
private typedElementManager?;
constructor(storage: IMigrationStorage, versionUtils: IVersionUtils);
/**
* Установка менеджера типизированных элементов
*/
setTypedElementManager(manager: TypedElementManager): void;
/**
* Регистрация миграции
*/
registerMigration(migration: IMigration): void;
/**
* Получение всех миграций
*/
getMigrations(): IMigration[];
/**
* Получение миграции по ID
*/
getMigration(id: string): IMigration | undefined;
/**
* Получение истории миграций
*/
getHistory(): Promise<MigrationRecord[]>;
/**
* Получение текущей версии
*/
getCurrentVersion(): Promise<string>;
/**
* Создание плана миграции
*/
createPlan(targetVersion: string): Promise<MigrationPlan>;
/**
* Применение миграций
*/
migrate(targetVersion?: string): Promise<MigrationResult[]>;
/**
* Откат миграций
*/
rollback(targetVersion?: string): Promise<MigrationResult[]>;
/**
* Проверка состояния миграций
*/
checkStatus(): Promise<{
currentVersion: string;
pendingMigrations: string[];
lastMigration: MigrationRecord;
}>;
/**
* Создание миграции схемы
*/
createSchemaMigration(config: SchemaMigrationConfig): IMigration;
/**
* Создание миграции данных
*/
createDataMigration(config: DataMigrationConfig & {
id: string;
version: string;
description: string;
}): IMigration;
/**
* Валидация целостности
*/
validateIntegrity(): Promise<boolean>;
/**
* Сброс состояния миграций
*/
reset(): Promise<void>;
/**
* Выполнение миграции
*/
private executeMigration;
/**
* Разрешение зависимостей миграций
*/
private resolveDependencies;
}
//# sourceMappingURL=MigrationManager.d.ts.map