mssql - incremental analysis

This commit is contained in:
Jan Prochazka
2020-04-11 20:24:30 +02:00
parent eb0c2f04bd
commit fae97a8b4a
12 changed files with 288 additions and 87 deletions

View File

@@ -43,12 +43,36 @@ export interface ColumnInfo {
defaultConstraint: string;
commonType?: DbType;
}
export interface TableInfo extends NamedObjectInfo {
export interface DatabaseObjectInfo extends NamedObjectInfo {
objectId?: string;
createDate?: string;
modifyDate?: string;
}
export interface SqlObjectInfo extends DatabaseObjectInfo {
createSql?: string;
}
export interface TableInfo extends DatabaseObjectInfo {
columns: ColumnInfo[];
primaryKey?: PrimaryKeyInfo;
foreignKeys: ForeignKeyInfo[];
dependencies?: ForeignKeyInfo[];
}
export interface ViewInfo extends SqlObjectInfo {}
export interface ProcedureInfo extends SqlObjectInfo {}
export interface FunctionInfo extends SqlObjectInfo {}
export interface TriggerInfo extends SqlObjectInfo {}
export interface DatabaseInfo {
tables: TableInfo[];
views: ViewInfo[];
procedures: ProcedureInfo[];
functions: FunctionInfo[];
triggers: TriggerInfo[];
}

View File

@@ -1,7 +1,7 @@
import { QueryResult } from './query';
import { SqlDialect } from './dialect';
import { SqlDumper } from './dumper';
import { DatabaseInfo } from './dbinfo';
import { DatabaseInfo, NamedObjectInfo } from './dbinfo';
export interface StreamOptions {
recordset: (columns) => void;
@@ -25,7 +25,15 @@ export interface EngineDriver {
}[]
>;
analyseFull(pool: any): Promise<DatabaseInfo>;
// analyseIncremental(pool: any): Promise<void>;
analyseIncremental(pool: any, structure: DatabaseInfo): Promise<DatabaseInfo>;
dialect: SqlDialect;
createDumper(): SqlDumper;
}
export interface DatabaseModification {
oldName?: NamedObjectInfo;
newName?: NamedObjectInfo;
objectId: string;
action: 'add' | 'remove' | 'change';
objectTypeField: keyof DatabaseInfo;
}