UNPKG

cs-element

Version:

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

97 lines 3.23 kB
/** * Фабрика для создания миграций */ import { IMigration, IMigrationFactory, MigrationResult, MigrationContext, SchemaMigrationConfig, DataMigrationConfig } from '../types/migration-interfaces'; import { ICSElement } from '../types/interfaces'; export declare class MigrationFactory implements IMigrationFactory { /** * Создает миграцию схемы */ createSchemaMigration(config: SchemaMigrationConfig & { id: string; version: string; description: string; }): IMigration; /** * Создает миграцию данных */ createDataMigration(config: DataMigrationConfig & { id: string; version: string; description: string; }): IMigration; /** * Создает кастомную миграцию */ createCustomMigration(config: { id: string; version: string; description: string; dependencies?: string[]; up: (context: MigrationContext) => Promise<MigrationResult>; down: (context: MigrationContext) => Promise<MigrationResult>; canApply?: (context: MigrationContext) => Promise<boolean>; canRollback?: (context: MigrationContext) => Promise<boolean>; validate?: (context: MigrationContext) => Promise<boolean>; }): IMigration; /** * Создает миграцию для добавления поля */ createAddFieldMigration(config: { id: string; version: string; schemaName: string; fieldName: string; fieldType: string; defaultValue?: any; required?: boolean; }): IMigration; /** * Создает миграцию для удаления поля */ createRemoveFieldMigration(config: { id: string; version: string; schemaName: string; fieldName: string; }): IMigration; /** * Создает миграцию для переименования поля */ createRenameFieldMigration(config: { id: string; version: string; schemaName: string; oldFieldName: string; newFieldName: string; }): IMigration; /** * Создает миграцию для изменения типа поля */ createChangeFieldTypeMigration(config: { id: string; version: string; schemaName: string; fieldName: string; oldType: string; newType: string; transformer?: (value: any) => any; }): IMigration; /** * Создает миграцию для создания индекса */ createCreateIndexMigration(config: { id: string; version: string; schemaName: string; indexName: string; fields: string[]; unique?: boolean; }): IMigration; /** * Получает элементы для миграции из контекста */ static getElementsForMigration(context: MigrationContext, config: DataMigrationConfig): Promise<ICSElement[]>; } export declare const migrationFactory: MigrationFactory; //# sourceMappingURL=MigrationFactory.d.ts.map