import { WithLengthColumnType, WithPrecisionColumnType, WithWidthColumnType } from "typeorm/driver/types/ColumnTypes"; import { DataTypeDefaults } from "typeorm/driver/types/DataTypeDefaults"; import IConnectionOptions from "../IConnectionOptions"; import { Entity } from "../models/Entity"; import { RelationInternal } from "../models/RelationInternal"; import IGenerationOptions from "../IGenerationOptions"; export default abstract class AbstractDriver { abstract standardPort: number; abstract standardSchema: string; abstract standardUser: string; abstract defaultValues: DataTypeDefaults; ColumnTypesWithWidth: WithWidthColumnType[]; ColumnTypesWithPrecision: WithPrecisionColumnType[]; ColumnTypesWithLength: WithLengthColumnType[]; static FindManyToManyRelations(dbModel: Entity[]): Entity[]; GetDataFromServer(connectionOptions: IConnectionOptions, generationOptions: IGenerationOptions): Promise; static FilterGeneratedTables(dbModel: Entity[], skipTables: string[], onlyTables: string[]): Entity[]; abstract ConnectToServer(connectionOptons: IConnectionOptions): Promise; abstract GetAllTables(schemas: string[], dbNames: string[]): Promise; static GetRelationsFromRelationTempInfo(relationsTemp: RelationInternal[], entities: Entity[], generationOptions: IGenerationOptions): Entity[]; abstract GetCoulmnsFromEntity(entities: Entity[], schemas: string[], dbNames: string[]): Promise; abstract GetIndexesFromEntity(entities: Entity[], schemas: string[], dbNames: string[]): Promise; abstract GetRelations(entities: Entity[], schemas: string[], dbNames: string[], generationOptions: IGenerationOptions): Promise; static FindPrimaryColumnsFromIndexes(dbModel: Entity[]): void; abstract DisconnectFromServer(): Promise; abstract CreateDB(dbName: string): Promise; abstract DropDB(dbName: string): Promise; abstract CheckIfDBExists(dbName: string): Promise; protected static buildEscapedObjectList(dbNames: string[]): string; }