n8n
Version:
n8n Workflow Automation Tool
49 lines (48 loc) • 1.82 kB
TypeScript
import type { QueryRunner, ObjectLiteral } from '@n8n/typeorm';
import type { Logger } from 'n8n-core';
import type { INodeTypes } from 'n8n-workflow';
import type { createSchemaBuilder } from './dsl';
export type DatabaseType = 'mariadb' | 'postgresdb' | 'mysqldb' | 'sqlite';
export interface MigrationContext {
logger: Logger;
queryRunner: QueryRunner;
tablePrefix: string;
dbType: DatabaseType;
isMysql: boolean;
isSqlite: boolean;
isPostgres: boolean;
dbName: string;
migrationName: string;
nodeTypes: INodeTypes;
schemaBuilder: ReturnType<typeof createSchemaBuilder>;
loadSurveyFromDisk(): string | null;
parseJson<T>(data: string | T): T;
escape: {
columnName(name: string): string;
tableName(name: string): string;
indexName(name: string): string;
};
runQuery<T>(sql: string, namedParameters?: ObjectLiteral): Promise<T>;
runInBatches<T>(query: string, operation: (results: T[]) => Promise<void>, limit?: number): Promise<void>;
copyTable(fromTable: string, toTable: string): Promise<void>;
copyTable(fromTable: string, toTable: string, fromFields?: string[], toFields?: string[], batchSize?: number): Promise<void>;
}
export type MigrationFn = (ctx: MigrationContext) => Promise<void>;
export interface BaseMigration {
up: MigrationFn;
down?: MigrationFn | never;
transaction?: false;
}
export interface ReversibleMigration extends BaseMigration {
down: MigrationFn;
}
export interface IrreversibleMigration extends BaseMigration {
down?: never;
}
export interface Migration extends Function {
prototype: ReversibleMigration | IrreversibleMigration;
}
export type InsertResult = Array<{
insertId: number;
}>;
export { QueryFailedError } from '@n8n/typeorm/error/QueryFailedError';