mirror of
https://github.com/t8y2/dbx.git
synced 2026-10-21 04:32:03 +00:00
fix(sidebar): avoid opening schema browser from pg database
This commit is contained in:
@@ -76,7 +76,7 @@ import {
|
||||
supportsDatabaseCreation,
|
||||
supportsDatabaseSearch,
|
||||
supportsFieldLineage,
|
||||
supportsObjectBrowser,
|
||||
supportsObjectBrowserTreeNode,
|
||||
supportsSchemaDiagram,
|
||||
supportsSqlFileExecution,
|
||||
supportsTableImport,
|
||||
@@ -1283,10 +1283,7 @@ const canOpenDatabaseSearch = computed(() => {
|
||||
return !!props.node.database && supportsDatabaseSearch(nodeConfig.value?.db_type);
|
||||
});
|
||||
const canOpenObjectBrowser = computed(() => {
|
||||
return (
|
||||
(props.node.type === "database" || props.node.type === "schema" || props.node.type === "object-browser") &&
|
||||
supportsObjectBrowser(nodeConfig.value?.db_type)
|
||||
);
|
||||
return supportsObjectBrowserTreeNode(nodeConfig.value?.db_type, props.node.type);
|
||||
});
|
||||
const canOpenTableImport = computed(() => {
|
||||
return props.node.type === "table" && !!props.node.database && supportsTableImport(nodeConfig.value?.db_type);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { DatabaseType } from "@/types/database";
|
||||
import type { DatabaseType, TreeNodeType } from "@/types/database";
|
||||
import {
|
||||
AGENT_DRIVER_TYPES,
|
||||
CREATE_DATABASE_SUPPORTED_TYPES,
|
||||
@@ -72,6 +72,12 @@ export function supportsObjectBrowser(dbType?: DatabaseType): boolean {
|
||||
return !!dbType && !["redis", "mongodb", "elasticsearch"].includes(dbType);
|
||||
}
|
||||
|
||||
export function supportsObjectBrowserTreeNode(dbType: DatabaseType | undefined, nodeType: TreeNodeType): boolean {
|
||||
if (!supportsObjectBrowser(dbType)) return false;
|
||||
if (nodeType === "database" && isSchemaAware(dbType)) return false;
|
||||
return nodeType === "database" || nodeType === "schema" || nodeType === "object-browser";
|
||||
}
|
||||
|
||||
export function supportsTableTruncate(dbType?: DatabaseType): boolean {
|
||||
return !!dbType && dbType !== "sqlite" && dbType !== "duckdb";
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
supportsDriverManagement,
|
||||
supportsFieldLineage,
|
||||
supportsObjectBrowser,
|
||||
supportsObjectBrowserTreeNode,
|
||||
supportsSchemaDiagram,
|
||||
supportsSqlFileExecution,
|
||||
supportsTableImport,
|
||||
@@ -111,3 +112,10 @@ test("describes feature support through capability helpers", () => {
|
||||
assert.equal(supportsTableTruncate("mysql"), true);
|
||||
assert.equal(supportsTableTruncate("duckdb"), false);
|
||||
});
|
||||
|
||||
test("schema-aware database nodes do not open an object browser tab", () => {
|
||||
assert.equal(supportsObjectBrowserTreeNode("postgres", "database"), false);
|
||||
assert.equal(supportsObjectBrowserTreeNode("postgres", "schema"), true);
|
||||
assert.equal(supportsObjectBrowserTreeNode("mysql", "database"), true);
|
||||
assert.equal(supportsObjectBrowserTreeNode("mongodb", "database"), false);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user