diff --git a/src/common/interfaces/antares.ts b/src/common/interfaces/antares.ts index 301c9cf2..f2e330d0 100644 --- a/src/common/interfaces/antares.ts +++ b/src/common/interfaces/antares.ts @@ -73,6 +73,19 @@ export interface TypesGroup { } // Tables +export interface TableInfos { + name: string; + type: string; + rows: number; + created: Date; + updated: Date; + engine: string; + comment: string; + size: number; + autoIncrement: number; + collation: string; +} + export interface TableField { name: string; key: string; @@ -87,7 +100,7 @@ export interface TableField { unsigned?: boolean; zerofill?: boolean; order?: number; - default?: number | string; + default?: string; enumValues?: string; charset?: string; collation?: string; @@ -97,6 +110,7 @@ export interface TableField { comment?: string; after?: string; orgName?: string; + length?: number; } export interface TableIndex { @@ -170,6 +184,7 @@ export interface AlterTableParams { } // Views +export type ViewInfos = TableInfos export interface CreateViewParams { schema: string; name: string; @@ -185,6 +200,18 @@ export interface AlterViewParams extends CreateViewParams { } // Triggers +export interface TriggerInfos { + name: string; + statement: string; + timing: string; + definer: string; + event: string; + table: string; + sqlMode: string; + created: Date; + charset: string; +} + export interface CreateTriggerParams { definer?: string; schema: string; @@ -200,6 +227,19 @@ export interface AlterTriggerParams extends CreateTriggerParams { } // Routines & Functions +export interface RoutineInfos { + name: string; + type: string; + definer: string; + created: string; + updated: string; + comment?: string; + charset?: string; + security?: string; +} + +export type FunctionInfos = RoutineInfos + export interface FunctionParam { context: string; name: string; @@ -244,6 +284,29 @@ export interface AlterFunctionParams extends CreateFunctionParams { } // Events +export interface EventInfos { + name: string; + definition: string; + type: string; + definer: string; + body: string; + starts: string; + ends: string; + enabled: boolean; + executeAt: string; + intervalField: string; + intervalValue: string; + onCompletion: string; + originator: string; + sqlMode: string; + created: string; + updated: string; + lastExecuted: string; + comment: string; + charset: string; + timezone: string; +} + export interface CreateEventParams { definer?: string; schema: string; @@ -263,6 +326,17 @@ export interface AlterEventParams extends CreateEventParams { oldName?: string; } +// Schema +export interface SchemaInfos { + name: string; + size: number; + tables: TableInfos[]; + functions: RoutineInfos[]; + procedures: RoutineInfos[]; + triggers: TriggerInfos[]; + schedulers: EventInfos[]; +} + // Query export interface QueryBuilderObject { schema: string; diff --git a/src/main/ipc-handlers/schema.ts b/src/main/ipc-handlers/schema.ts index bb744c20..8d45aa82 100644 --- a/src/main/ipc-handlers/schema.ts +++ b/src/main/ipc-handlers/schema.ts @@ -172,7 +172,10 @@ export default (connections: {[key: string]: antares.Client}) => { }); ipcMain.handle('export', (event, { uid, type, tables, ...rest }) => { - if (exporter !== null) return; + if (exporter !== null) { + exporter.kill(); + return; + } return new Promise((resolve/*, reject */) => { (async () => { @@ -265,7 +268,10 @@ export default (connections: {[key: string]: antares.Client}) => { }); ipcMain.handle('import-sql', async (event, options) => { - if (importer !== null) return; + if (importer !== null) { + importer.kill(); + return; + } return new Promise((resolve/*, reject */) => { (async () => { diff --git a/src/main/libs/clients/MySQLClient.ts b/src/main/libs/clients/MySQLClient.ts index fef7de49..acdf3311 100644 --- a/src/main/libs/clients/MySQLClient.ts +++ b/src/main/libs/clients/MySQLClient.ts @@ -321,7 +321,7 @@ export class MySQLClient extends AntaresCore { return filteredDatabases.map(db => { if (schemas.has(db.Database)) { // TABLES - const remappedTables = tablesArr.filter(table => table.Db === db.Database).map(table => { + const remappedTables: antares.TableInfos[] = tablesArr.filter(table => table.Db === db.Database).map(table => { let tableType; switch (table.Comment) { case 'VIEW': @@ -350,7 +350,7 @@ export class MySQLClient extends AntaresCore { }); // PROCEDURES - const remappedProcedures = procedures.filter(procedure => procedure.Db === db.Database).map(procedure => { + const remappedProcedures: antares.RoutineInfos[] = procedures.filter(procedure => procedure.Db === db.Database).map(procedure => { return { name: procedure.Name, type: procedure.Type, @@ -364,7 +364,7 @@ export class MySQLClient extends AntaresCore { }); // FUNCTIONS - const remappedFunctions = functions.filter(func => func.Db === db.Database).map(func => { + const remappedFunctions: antares.FunctionInfos[] = functions.filter(func => func.Db === db.Database).map(func => { return { name: func.Name, type: func.Type, @@ -378,7 +378,7 @@ export class MySQLClient extends AntaresCore { }); // SCHEDULERS - const remappedSchedulers = schedulers.filter(scheduler => scheduler.Db === db.Database).map(scheduler => { + const remappedSchedulers: antares.EventInfos[] = schedulers.filter(scheduler => scheduler.Db === db.Database).map(scheduler => { return { name: scheduler.EVENT_NAME, definition: scheduler.EVENT_DEFINITION, @@ -404,7 +404,7 @@ export class MySQLClient extends AntaresCore { }); // TRIGGERS - const remappedTriggers = triggersArr.filter(trigger => trigger.Db === db.Database).map(trigger => { + const remappedTriggers: antares.TriggerInfos[] = triggersArr.filter(trigger => trigger.Db === db.Database).map(trigger => { return { name: trigger.Trigger, statement: trigger.Statement, diff --git a/src/renderer/components/BaseTextEditor.vue b/src/renderer/components/BaseTextEditor.vue index 5764536a..41209f1b 100644 --- a/src/renderer/components/BaseTextEditor.vue +++ b/src/renderer/components/BaseTextEditor.vue @@ -10,7 +10,7 @@ diff --git a/src/renderer/components/ModalAskCredentials.vue b/src/renderer/components/ModalAskCredentials.vue index 3a71c924..5f50226b 100644 --- a/src/renderer/components/ModalAskCredentials.vue +++ b/src/renderer/components/ModalAskCredentials.vue @@ -55,30 +55,25 @@ - diff --git a/src/renderer/components/ModalAskParameters.vue b/src/renderer/components/ModalAskParameters.vue index fd9a3353..b44c3e73 100644 --- a/src/renderer/components/ModalAskParameters.vue +++ b/src/renderer/components/ModalAskParameters.vue @@ -47,83 +47,78 @@ - diff --git a/src/renderer/components/ModalProcessesList.vue b/src/renderer/components/ModalProcessesList.vue index 05f4fa10..fd0a96c4 100644 --- a/src/renderer/components/ModalProcessesList.vue +++ b/src/renderer/components/ModalProcessesList.vue @@ -133,218 +133,218 @@ -