mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-26 20:16:00 +00:00
postgre analyser
This commit is contained in:
@@ -51,6 +51,7 @@ class PostgreAnalyser extends DatabaseAnalayser {
|
|||||||
const pkColumns = await this.driver.query(this.pool, this.createQuery('primaryKeys', ['tables']));
|
const pkColumns = await this.driver.query(this.pool, this.createQuery('primaryKeys', ['tables']));
|
||||||
const fkColumns = await this.driver.query(this.pool, this.createQuery('foreignKeys', ['tables']));
|
const fkColumns = await this.driver.query(this.pool, this.createQuery('foreignKeys', ['tables']));
|
||||||
const views = await this.driver.query(this.pool, this.createQuery('views', ['views']));
|
const views = await this.driver.query(this.pool, this.createQuery('views', ['views']));
|
||||||
|
const routines = await this.driver.query(this.pool, this.createQuery('routines', ['procedures', 'functions']));
|
||||||
// console.log('PG fkColumns', fkColumns.rows);
|
// console.log('PG fkColumns', fkColumns.rows);
|
||||||
|
|
||||||
return this.mergeAnalyseResult({
|
return this.mergeAnalyseResult({
|
||||||
@@ -68,6 +69,8 @@ class PostgreAnalyser extends DatabaseAnalayser {
|
|||||||
.filter((col) => col.pureName == view.pureName && col.schemaName == view.schemaName)
|
.filter((col) => col.pureName == view.pureName && col.schemaName == view.schemaName)
|
||||||
.map(getColumnInfo),
|
.map(getColumnInfo),
|
||||||
})),
|
})),
|
||||||
|
procedures: routines.rows.filter((x) => x.objectType == 'PROCEDURE'),
|
||||||
|
functions: routines.rows.filter((x) => x.objectType == 'FUNCTION'),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ const tableModifications = require('./tableModifications');
|
|||||||
const primaryKeys = require('./primaryKeys');
|
const primaryKeys = require('./primaryKeys');
|
||||||
const foreignKeys = require('./foreignKeys');
|
const foreignKeys = require('./foreignKeys');
|
||||||
const views = require('./views');
|
const views = require('./views');
|
||||||
|
const routines = require('./routines');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
columns,
|
columns,
|
||||||
@@ -10,4 +11,5 @@ module.exports = {
|
|||||||
primaryKeys,
|
primaryKeys,
|
||||||
foreignKeys,
|
foreignKeys,
|
||||||
views,
|
views,
|
||||||
|
routines,
|
||||||
};
|
};
|
||||||
|
|||||||
10
packages/engines/postgres/sql/routines.js
Normal file
10
packages/engines/postgres/sql/routines.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
module.exports = `
|
||||||
|
select
|
||||||
|
routine_name as "pureName",
|
||||||
|
routine_schema as "schemaName",
|
||||||
|
routine_definition as "createSql",
|
||||||
|
md5(routine_definition) as "hashCode",
|
||||||
|
routine_type as "objectType"
|
||||||
|
from
|
||||||
|
information_schema.routines where routine_schema != 'information_schema' and routine_schema != 'pg_catalog' and routine_type is not null
|
||||||
|
`;
|
||||||
Reference in New Issue
Block a user