mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-02 02:03:58 +00:00
load db structure progress (postgresql) #273
This commit is contained in:
@@ -15,6 +15,7 @@ let afterConnectCallbacks = [];
|
||||
let afterAnalyseCallbacks = [];
|
||||
let analysedStructure = null;
|
||||
let lastPing = null;
|
||||
let lastStatusString = null;
|
||||
let lastStatus = null;
|
||||
let analysedTime = 0;
|
||||
let serverVersion;
|
||||
@@ -84,15 +85,17 @@ function handleSyncModel() {
|
||||
}
|
||||
|
||||
function setStatus(status) {
|
||||
const statusString = stableStringify(status);
|
||||
if (lastStatus != statusString) {
|
||||
process.send({ msgtype: 'status', status: { ...status, counter: getStatusCounter() } });
|
||||
lastStatus = statusString;
|
||||
const newStatus = { ...lastStatus, ...status };
|
||||
const statusString = stableStringify(newStatus);
|
||||
if (lastStatusString != statusString) {
|
||||
process.send({ msgtype: 'status', status: { ...newStatus, counter: getStatusCounter() } });
|
||||
lastStatusString = statusString;
|
||||
lastStatus = newStatus;
|
||||
}
|
||||
}
|
||||
|
||||
function setStatusName(name) {
|
||||
setStatus({ name });
|
||||
setStatus({ name, message: null });
|
||||
}
|
||||
|
||||
async function readVersion() {
|
||||
@@ -109,6 +112,7 @@ async function handleConnect({ connection, structure, globalSettings }) {
|
||||
if (!structure) setStatusName('pending');
|
||||
const driver = requireEngineDriver(storedConnection);
|
||||
systemConnection = await checkedAsyncCall(connectUtility(driver, storedConnection, 'app'));
|
||||
systemConnection.feedback = feedback => setStatus({ feedback });
|
||||
await checkedAsyncCall(readVersion());
|
||||
if (structure) {
|
||||
analysedStructure = structure;
|
||||
|
||||
@@ -220,6 +220,12 @@ export class DatabaseAnalyser {
|
||||
];
|
||||
}
|
||||
|
||||
feedback(obj) {
|
||||
if (this.pool.feedback) {
|
||||
this.pool.feedback(obj);
|
||||
}
|
||||
}
|
||||
|
||||
async getModifications() {
|
||||
const snapshot = await this._getFastSnapshot();
|
||||
if (!snapshot) return null;
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
objectTypeField: 'queries',
|
||||
pureName: query.name,
|
||||
schemaName: app.name,
|
||||
sql: query.sql
|
||||
sql: query.sql,
|
||||
}))
|
||||
),
|
||||
]);
|
||||
@@ -134,7 +134,7 @@
|
||||
</SearchBoxWrapper>
|
||||
<WidgetsInnerContainer>
|
||||
{#if ($status && ($status.name == 'pending' || $status.name == 'checkStructure' || $status.name == 'loadStructure') && $objects) || !$objects}
|
||||
<LoadingInfo message="Loading database structure" />
|
||||
<LoadingInfo message={$status?.feedback?.analysingMessage || 'Loading database structure'} />
|
||||
{:else}
|
||||
<AppObjectList
|
||||
list={objectList.map(x => ({ ...x, conid, database }))}
|
||||
|
||||
Reference in New Issue
Block a user