mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-02 03:13:58 +00:00
postgreSQL loading structure optimalization #273
This commit is contained in:
@@ -147,6 +147,26 @@ class Analyser extends DatabaseAnalyser {
|
|||||||
const uniqueNames = await this.driver.query(this.pool, this.createQuery('uniqueNames', ['tables']));
|
const uniqueNames = await this.driver.query(this.pool, this.createQuery('uniqueNames', ['tables']));
|
||||||
this.feedback({ analysingMessage: 'Finalizing DB structure' });
|
this.feedback({ analysingMessage: 'Finalizing DB structure' });
|
||||||
|
|
||||||
|
const columnColumnsMapped = fkColumns.rows.map(x => ({
|
||||||
|
pureName: x.pure_name,
|
||||||
|
schemaName: x.schema_name,
|
||||||
|
constraintSchema: x.constraint_schema,
|
||||||
|
constraintName: x.constraint_name,
|
||||||
|
columnName: x.column_name,
|
||||||
|
refColumnName: x.ref_column_name,
|
||||||
|
updateAction: x.update_action,
|
||||||
|
deleteAction: x.delete_action,
|
||||||
|
refTableName: x.ref_table_name,
|
||||||
|
refSchemaName: x.ref_schema_name,
|
||||||
|
}));
|
||||||
|
const pkColumnsMapped = pkColumns.rows.map(x => ({
|
||||||
|
pureName: x.pure_name,
|
||||||
|
schemaName: x.schema_name,
|
||||||
|
constraintSchema: x.constraint_schema,
|
||||||
|
constraintName: x.constraint_name,
|
||||||
|
columnName: x.column_name,
|
||||||
|
}));
|
||||||
|
|
||||||
const res = {
|
const res = {
|
||||||
tables: tables.rows.map(table => {
|
tables: tables.rows.map(table => {
|
||||||
const newTable = {
|
const newTable = {
|
||||||
@@ -160,31 +180,8 @@ class Analyser extends DatabaseAnalyser {
|
|||||||
columns: columns.rows
|
columns: columns.rows
|
||||||
.filter(col => col.pure_name == table.pure_name && col.schema_name == table.schema_name)
|
.filter(col => col.pure_name == table.pure_name && col.schema_name == table.schema_name)
|
||||||
.map(getColumnInfo),
|
.map(getColumnInfo),
|
||||||
primaryKey: DatabaseAnalyser.extractPrimaryKeys(
|
primaryKey: DatabaseAnalyser.extractPrimaryKeys(newTable, pkColumnsMapped),
|
||||||
newTable,
|
foreignKeys: DatabaseAnalyser.extractForeignKeys(newTable, columnColumnsMapped),
|
||||||
pkColumns.rows.map(x => ({
|
|
||||||
pureName: x.pure_name,
|
|
||||||
schemaName: x.schema_name,
|
|
||||||
constraintSchema: x.constraint_schema,
|
|
||||||
constraintName: x.constraint_name,
|
|
||||||
columnName: x.column_name,
|
|
||||||
}))
|
|
||||||
),
|
|
||||||
foreignKeys: DatabaseAnalyser.extractForeignKeys(
|
|
||||||
newTable,
|
|
||||||
fkColumns.rows.map(x => ({
|
|
||||||
pureName: x.pure_name,
|
|
||||||
schemaName: x.schema_name,
|
|
||||||
constraintSchema: x.constraint_schema,
|
|
||||||
constraintName: x.constraint_name,
|
|
||||||
columnName: x.column_name,
|
|
||||||
refColumnName: x.ref_column_name,
|
|
||||||
updateAction: x.update_action,
|
|
||||||
deleteAction: x.delete_action,
|
|
||||||
refTableName: x.ref_table_name,
|
|
||||||
refSchemaName: x.ref_schema_name,
|
|
||||||
}))
|
|
||||||
),
|
|
||||||
indexes: indexes.rows
|
indexes: indexes.rows
|
||||||
.filter(
|
.filter(
|
||||||
x =>
|
x =>
|
||||||
|
|||||||
Reference in New Issue
Block a user