cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
153 lines • 4.55 kB
TypeScript
/**
* Главный компонент системы миграций
*/
import { EventEmitter } from 'events';
import { MigrationManager } from './MigrationManager';
import { MigrationRunner, MigrationRunnerConfig, MigrationExecutionInfo } from './MigrationRunner';
import { MigrationScheduler, MigrationSchedulerConfig, MigrationTask } from './MigrationScheduler';
import { MigrationLogger, MigrationLoggerConfig } from './MigrationLogger';
import { IMigrationStorage, IVersionUtils, IMigration } from '../types/migration-interfaces';
/**
* Конфигурация системы миграций
*/
export interface MigrationSystemConfig {
runner?: MigrationRunnerConfig;
scheduler?: MigrationSchedulerConfig;
logger?: MigrationLoggerConfig;
storage?: IMigrationStorage;
versionUtils?: IVersionUtils;
autoStart?: boolean;
integration?: {
onInit?: () => Promise<void>;
onShutdown?: () => Promise<void>;
onError?: (error: Error) => Promise<void>;
};
}
/**
* Статус системы миграций
*/
export interface MigrationSystemStatus {
manager: {
initialized: boolean;
migrationsCount: number;
currentVersion: string;
};
runner: {
isExecuting: boolean;
currentExecution?: MigrationExecutionInfo;
};
scheduler: {
isRunning: boolean;
tasksCount: number;
stats: {
totalTasks: number;
pendingTasks: number;
runningTasks: number;
completedTasks: number;
failedTasks: number;
};
};
logger: {
totalEntries: number;
stats: {
totalEntries: number;
byLevel: Record<string, number>;
bySource: Record<string, number>;
};
};
}
/**
* Главная система миграций
*/
export declare class MigrationSystem extends EventEmitter {
private config;
private manager;
private runner;
private scheduler;
private logger;
private storage;
private versionUtils;
private isInitialized;
private isShuttingDown;
constructor(config?: MigrationSystemConfig);
/**
* Настройка обработчиков событий
*/
private setupEventHandlers;
/**
* Инициализация системы
*/
initialize(): Promise<void>;
/**
* Завершение работы системы
*/
shutdown(): Promise<void>;
/**
* Регистрация миграции
*/
registerMigration(migration: IMigration): void;
/**
* Регистрация множества миграций
*/
registerMigrations(migrations: IMigration[]): void;
/**
* Ручной запуск миграций
*/
runMigrations(): Promise<MigrationExecutionInfo>;
/**
* Откат миграций
*/
rollback(targetVersion?: string): Promise<MigrationExecutionInfo>;
/**
* Планирование задачи миграции
*/
scheduleTask(): string;
/**
* Получение статуса системы
*/
getStatus(): Promise<MigrationSystemStatus>;
/**
* Получение истории миграций
*/
getHistory(): Promise<import("../types/migration-interfaces").MigrationRecord[]>;
/**
* Получение логов
*/
getLogs(filter?: Parameters<typeof this.logger.getEntries>[0]): import("./MigrationLogger").LogEntry[];
/**
* Получение задач планировщика
*/
getTasks(): MigrationTask[];
/**
* Отмена задачи
*/
cancelTask(taskId: string): Promise<boolean>;
/**
* Очистка старых задач
*/
cleanupTasks(olderThan: Date): number;
/**
* Очистка логов
*/
clearLogs(): void;
/**
* Сброс системы (для тестирования)
*/
reset(): Promise<void>;
/**
* Проверка инициализации
*/
isReady(): boolean;
/**
* Получение компонентов (для расширенного использования)
*/
getComponents(): {
manager: MigrationManager;
runner: MigrationRunner;
scheduler: MigrationScheduler;
logger: MigrationLogger;
storage: IMigrationStorage;
versionUtils: IVersionUtils;
};
}
//# sourceMappingURL=MigrationSystem.d.ts.map