UNPKG

cs-element

Version:

Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support

92 lines 2.77 kB
/** * Автоматическое применение миграций и система отката */ 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