mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 16:06:01 +00:00
feat: fetch only base column info for modifications, drop columnComment only if exists
This commit is contained in:
@@ -90,7 +90,7 @@ function getColumnInfo({
|
||||
/**
|
||||
* @param {ReturnType<objectTypeToField>} fieldType
|
||||
* @param {any} item
|
||||
* @param {Array<ReturnType<getColumnInfo>>} columns
|
||||
* @param {Array<{ objectId: string; columnComment: string }>} columns
|
||||
* @returns {string|null}
|
||||
*/
|
||||
function createObjectContentHash(fieldType, item, columns) {
|
||||
@@ -273,8 +273,8 @@ class MsSqlAnalyser extends DatabaseAnalyser {
|
||||
|
||||
async _getFastSnapshot() {
|
||||
const modificationsQueryData = await this.analyserQuery('modifications');
|
||||
const columnsRows = await this.analyserQuery('columns', ['tables']);
|
||||
const columns = columnsRows.rows.map(getColumnInfo);
|
||||
const baseColumnsRows = await this.analyserQuery('columns', ['tables']);
|
||||
const baseColumns = baseColumnsRows.rows.map(getColumnInfo);
|
||||
const tableSizes = await this.analyserQuery('tableSizes');
|
||||
|
||||
const res = DatabaseAnalyser.createEmptyStructure();
|
||||
@@ -285,7 +285,7 @@ class MsSqlAnalyser extends DatabaseAnalyser {
|
||||
|
||||
res[field].push({
|
||||
objectId,
|
||||
contentHash: createObjectContentHash(field, item, columns),
|
||||
contentHash: createObjectContentHash(field, item, baseColumns),
|
||||
schemaName,
|
||||
pureName,
|
||||
});
|
||||
|
||||
10
plugins/dbgate-plugin-mssql/src/backend/sql/baseColumns.js
Normal file
10
plugins/dbgate-plugin-mssql/src/backend/sql/baseColumns.js
Normal file
@@ -0,0 +1,10 @@
|
||||
module.exports = `
|
||||
select c.object_id as objectId,
|
||||
ep.value as columnComment
|
||||
from sys.columns c
|
||||
inner join sys.objects o on c.object_id = o.object_id
|
||||
INNER JOIN sys.schemas u ON u.schema_id=o.schema_id
|
||||
left join sys.extended_properties ep on ep.major_id = c.object_id and ep.minor_id = c.column_id and ep.name = 'MS_Description'
|
||||
where o.type IN ('U', 'V') and o.object_id =OBJECT_ID_CONDITION and u.name =SCHEMA_NAME_CONDITION
|
||||
order by c.column_id
|
||||
`;
|
||||
@@ -13,6 +13,7 @@ const viewColumns = require('./viewColumns');
|
||||
const indexes = require('./indexes');
|
||||
const indexcols = require('./indexcols');
|
||||
const triggers = require('./triggers');
|
||||
const baseColumns = require('./baseColumns');
|
||||
|
||||
module.exports = {
|
||||
columns,
|
||||
@@ -30,4 +31,5 @@ module.exports = {
|
||||
indexcols,
|
||||
tableSizes,
|
||||
triggers,
|
||||
baseColumns,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user