cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
92 lines • 2.77 kB
TypeScript
/**
* Автоматическое применение миграций и система отката
*/
import { EventEmitter } from 'events';
import { IMigration, IMigrationManager } from '../types/migration-interfaces';
/**
* Конфигурация для автоматического применения миграций
*/
export interface MigrationRunnerConfig {
autoMigrate?: boolean;
maxRetries?: number;
retryDelay?: number;
migrationTimeout?: number;
createBackup?: boolean;
stopOnError?: boolean;
debug?: boolean;
migrationFilter?: (migration: IMigration) => boolean;
}
/**
* Информация о выполнении миграций
*/
export interface MigrationExecutionInfo {
totalMigrations: number;
completedMigrations: number;
failedMigrations: number;
totalExecutionTime: number;
currentMigration?: string;
status: 'running' | 'completed' | 'failed' | 'cancelled';
errors: Array<{
migrationId: string;
error: string;
timestamp: Date;
}>;
}
/**
* Стратегия отката
*/
export type RollbackStrategy = 'immediate' | 'batch' | 'manual';
/**
* Конфигурация отката
*/
export interface RollbackConfig {
strategy: RollbackStrategy;
targetVersion?: string;
rollbackCount?: number;
requireConfirmation?: boolean;
createBackup?: boolean;
}
/**
* Класс для автоматического применения миграций
*/
export declare class MigrationRunner extends EventEmitter {
private migrationManager;
private config;
private isRunning;
private currentExecution?;
private abortController?;
constructor(migrationManager: IMigrationManager, config?: MigrationRunnerConfig);
/**
* Автоматическое применение всех ожидающих миграций
*/
runPendingMigrations(): Promise<MigrationExecutionInfo>;
/**
* Откат миграций
*/
rollback(config: RollbackConfig): Promise<MigrationExecutionInfo>;
/**
* Отмена выполнения миграций
*/
cancel(): Promise<void>;
/**
* Проверка возможности отката
*/
canRollback(targetVersion?: string): Promise<boolean>;
/**
* Получение текущего статуса выполнения
*/
getCurrentExecution(): MigrationExecutionInfo | undefined;
/**
* Проверка, выполняется ли миграция
*/
isExecuting(): boolean;
/**
* Логирование
*/
private log;
/**
* Задержка
*/
private sleep;
}
//# sourceMappingURL=MigrationRunner.d.ts.map