cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
99 lines • 3.48 kB
TypeScript
/**
* Builder для создания миграций с fluent API
*/
import { IMigration, MigrationResult, MigrationContext, MigrationType } from '../types/migration-interfaces';
import { ICSElement } from '../types/interfaces';
export declare class MigrationBuilder {
private migration;
/**
* Устанавливает ID миграции
*/
id(id: string): this;
/**
* Устанавливает версию миграции
*/
version(version: string): this;
/**
* Устанавливает описание миграции
*/
description(description: string): this;
/**
* Устанавливает тип миграции
*/
type(type: MigrationType): this;
/**
* Добавляет зависимость от другой миграции
*/
dependsOn(migrationId: string): this;
/**
* Добавляет несколько зависимостей
*/
dependsOnMany(migrationIds: string[]): this;
/**
* Устанавливает функцию применения миграции
*/
up(upFunction: (context: MigrationContext) => Promise<MigrationResult>): this;
/**
* Устанавливает функцию отката миграции
*/
down(downFunction: (context: MigrationContext) => Promise<MigrationResult>): this;
/**
* Устанавливает функцию проверки возможности применения
*/
canApply(canApplyFunction: (context: MigrationContext) => Promise<boolean>): this;
/**
* Устанавливает функцию проверки возможности отката
*/
canRollback(canRollbackFunction: (context: MigrationContext) => Promise<boolean>): this;
/**
* Устанавливает функцию валидации
*/
validate(validateFunction: (context: MigrationContext) => Promise<boolean>): this;
/**
* Создает миграцию для изменения схемы
*/
schemaChange(config: {
schemaName: string;
oldVersion: string;
newVersion: string;
fieldChanges?: {
added?: string[];
removed?: string[];
renamed?: Record<string, string>;
typeChanged?: Record<string, {
from: string;
to: string;
}>;
};
}): this;
/**
* Создает миграцию для трансформации данных
*/
dataTransform(config: {
elementType?: string;
transformer: (element: ICSElement) => Promise<ICSElement>;
rollbackTransformer?: (element: ICSElement) => Promise<ICSElement>;
batchSize?: number;
}): this;
/**
* Создает миграцию для выполнения SQL-подобных операций
*/
sqlLike(config: {
up: string;
down: string;
executor?: (query: string) => Promise<any>;
}): this;
/**
* Создает миграцию с автоматическими проверками
*/
withAutoChecks(): this;
/**
* Создает финальную миграцию
*/
build(): IMigration;
}
/**
* Создает новый builder для миграции
*/
export declare function createMigration(): MigrationBuilder;
//# sourceMappingURL=MigrationBuilder.d.ts.map