dbgate-tools
Version:
Auxiliary tools for other DbGate packages.
131 lines (130 loc) • 5.28 kB
TypeScript
import { DbDiffOptions } from './diffTools';
import { AlterProcessor, ColumnInfo, ConstraintInfo, DatabaseInfo, SqlObjectInfo, SqlDialect, TableInfo, NamedObjectInfo } from '../../types';
interface AlterOperation_CreateTable {
operationType: 'createTable';
newObject: TableInfo;
}
interface AlterOperation_DropTable {
operationType: 'dropTable';
oldObject: TableInfo;
}
interface AlterOperation_CreateSqlObject {
operationType: 'createSqlObject';
newObject: SqlObjectInfo;
}
interface AlterOperation_DropSqlObject {
operationType: 'dropSqlObject';
oldObject: SqlObjectInfo;
}
interface AlterOperation_RenameTable {
operationType: 'renameTable';
object: TableInfo;
newName: string;
}
interface AlterOperation_RenameSqlObject {
operationType: 'renameSqlObject';
object: SqlObjectInfo;
newName: string;
}
interface AlterOperation_CreateColumn {
operationType: 'createColumn';
newObject: ColumnInfo;
}
interface AlterOperation_ChangeColumn {
operationType: 'changeColumn';
oldObject: ColumnInfo;
newObject: ColumnInfo;
}
interface AlterOperation_RenameColumn {
operationType: 'renameColumn';
object: ColumnInfo;
newName: string;
}
interface AlterOperation_DropColumn {
operationType: 'dropColumn';
oldObject: ColumnInfo;
}
interface AlterOperation_CreateConstraint {
operationType: 'createConstraint';
newObject: ConstraintInfo;
}
interface AlterOperation_ChangeConstraint {
operationType: 'changeConstraint';
oldObject: ConstraintInfo;
newObject: ConstraintInfo;
}
interface AlterOperation_DropConstraint {
operationType: 'dropConstraint';
oldObject: ConstraintInfo;
isRecreate?: boolean;
}
interface AlterOperation_RenameConstraint {
operationType: 'renameConstraint';
object: ConstraintInfo;
newName: string;
}
interface AlterOperation_RecreateTable {
operationType: 'recreateTable';
table: TableInfo;
operations: AlterOperation[];
}
interface AlterOperation_FillPreloadedRows {
operationType: 'fillPreloadedRows';
table: NamedObjectInfo;
oldRows: any[];
newRows: any[];
key: string[];
insertOnly: string[];
autoIncrementColumn: string;
}
interface AlterOperation_SetTableOption {
operationType: 'setTableOption';
table: TableInfo;
optionName: string;
optionValue: string;
}
export type AlterOperation = AlterOperation_CreateColumn | AlterOperation_ChangeColumn | AlterOperation_DropColumn | AlterOperation_CreateConstraint | AlterOperation_ChangeConstraint | AlterOperation_DropConstraint | AlterOperation_CreateTable | AlterOperation_DropTable | AlterOperation_RenameTable | AlterOperation_RenameColumn | AlterOperation_RenameConstraint | AlterOperation_CreateSqlObject | AlterOperation_DropSqlObject | AlterOperation_RecreateTable | AlterOperation_FillPreloadedRows | AlterOperation_SetTableOption | AlterOperation_RenameSqlObject;
export declare class AlterPlan {
wholeOldDb: DatabaseInfo;
wholeNewDb: DatabaseInfo;
dialect: SqlDialect;
opts: DbDiffOptions;
recreates: {
tables: number;
constraints: number;
sqlObjects: number;
};
operations: AlterOperation[];
constructor(wholeOldDb: DatabaseInfo, wholeNewDb: DatabaseInfo, dialect: SqlDialect, opts: DbDiffOptions);
createTable(table: TableInfo): void;
dropTable(table: TableInfo): void;
createSqlObject(obj: SqlObjectInfo): void;
dropSqlObject(obj: SqlObjectInfo): void;
createColumn(column: ColumnInfo): void;
changeColumn(oldColumn: ColumnInfo, newColumn: ColumnInfo): void;
dropColumn(column: ColumnInfo): void;
createConstraint(constraint: ConstraintInfo): void;
changeConstraint(oldConstraint: ConstraintInfo, newConstraint: ConstraintInfo): void;
dropConstraint(constraint: ConstraintInfo): void;
renameTable(table: TableInfo, newName: string): void;
renameSqlObject(table: TableInfo, newName: string): void;
renameColumn(column: ColumnInfo, newName: string): void;
renameConstraint(constraint: ConstraintInfo, newName: string): void;
recreateTable(table: TableInfo, operations: AlterOperation[]): void;
fillPreloadedRows(table: NamedObjectInfo, oldRows: any[], newRows: any[], key: string[], insertOnly: string[], autoIncrementColumn: string): void;
setTableOption(table: TableInfo, optionName: string, optionValue: string): void;
run(processor: AlterProcessor): void;
_hasOnlyCommentChange(op: AlterOperation): boolean;
_getDependendColumnConstraints(column: ColumnInfo, dependencyDefinition: any): import("dbgate-types/dbinfo").PrimaryKeyInfo[];
_addLogicalDependencies(): AlterOperation[];
_transformToImplementedOps(): AlterOperation[];
_canCreateConstraint(cnt: ConstraintInfo): boolean;
_canDropConstraint(cnt: ConstraintInfo): boolean;
_testTableRecreate(op: AlterOperation, operationType: string, isAllowed: boolean | Function, objectField: string): AlterOperation[] | null;
_groupTableRecreations(): AlterOperation[];
_moveForeignKeysToLast(): AlterOperation[];
_filterAllowedOperations(): AlterOperation[];
transformPlan(): void;
}
export declare function runAlterOperation(op: AlterOperation, processor: AlterProcessor): void;
export {};