refresh DB - don't offer incremental analysis when not supported

This commit is contained in:
SPRINX0\prochazka
2025-12-02 18:07:28 +01:00
parent b40877fcc1
commit b6b6123434
9 changed files with 18 additions and 8 deletions

View File

@@ -1,10 +1,11 @@
import _ from 'lodash';
import { currentDatabase, getCurrentDatabase } from '../stores';
import { currentDatabase, getCurrentDatabase, getExtensions } from '../stores';
import getElectron from '../utility/getElectron';
import registerCommand from './registerCommand';
import { apiCall } from '../utility/api';
import { getDatabasStatusMenu, switchCurrentDatabase } from '../utility/common';
import { __t } from '../translations';
import { findEngineDriver } from 'dbgate-tools';
registerCommand({
id: 'database.changeState',
@@ -18,7 +19,8 @@ registerCommand({
conid: connection._id,
database: name,
};
const driver = findEngineDriver(connection, getExtensions());
return getDatabasStatusMenu(dbid);
return getDatabasStatusMenu(dbid, driver);
},
});

View File

@@ -155,12 +155,12 @@ export function getKeyTextFromEvent(e) {
return keyText;
}
export function getDatabasStatusMenu(dbid) {
export function getDatabasStatusMenu(dbid, driver = null) {
function callSchemalListChanged() {
apiCall('database-connections/dispatch-database-changed-event', { event: 'schema-list-changed', ...dbid });
}
return [
{
return _.compact([
driver?.supportsIncrementalAnalysis && {
text: _t('command.database.refreshIncremental', { defaultMessage: 'Refresh DB structure (incremental)' }),
onClick: () => {
apiCall('database-connections/sync-model', dbid);
@@ -168,7 +168,9 @@ export function getDatabasStatusMenu(dbid) {
},
},
{
text: _t('command.database.refreshFull', { defaultMessage: 'Refresh DB structure (full)' }),
text: driver?.supportsIncrementalAnalysis
? _t('command.database.refreshFull', { defaultMessage: 'Refresh DB structure (full)' })
: _t('command.database.refresh', { defaultMessage: 'Refresh DB structure' }),
onClick: () => {
apiCall('database-connections/sync-model', { ...dbid, isFullRefresh: true });
callSchemalListChanged();
@@ -189,5 +191,5 @@ export function getDatabasStatusMenu(dbid) {
switchCurrentDatabase(null);
},
},
];
]);
}

View File

@@ -143,7 +143,7 @@
}
function createRefreshDatabaseMenu() {
return getDatabasStatusMenu({ conid, database });
return getDatabasStatusMenu({ conid, database }, driver);
}
function handleFullRefreshDatabase() {