fix(app): 支持 GoldenDB 和 Vastbase 新建数据库入口 (#2361)

Co-authored-by: zero <zero@zeroMacmini.local>
This commit is contained in:
LRcoding 2026-07-02 13:44:42 +08:00 committed by GitHub
parent 643b397f06
commit 4fdfbf61c5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 37 additions and 3 deletions

View File

@ -665,7 +665,7 @@
"tableImport": true,
"dataTransfer": false,
"sqlFileExecution": true,
"databaseCreate": false,
"databaseCreate": true,
"fieldLineage": false,
"sqlExplain": false,
"userAdmin": true,
@ -695,7 +695,7 @@
"tableImport": true,
"dataTransfer": false,
"sqlFileExecution": true,
"databaseCreate": false,
"databaseCreate": true,
"fieldLineage": false,
"sqlExplain": false,
"userAdmin": true,

View File

@ -548,6 +548,20 @@ mod tests {
);
}
#[test]
fn builds_goldendb_create_database_sql_with_mysql_charset_options() {
assert_eq!(
build_create_database_sql(CreateDatabaseSqlOptions {
database_type: Some(DatabaseType::Goldendb),
driver_profile: Some("goldendb".to_string()),
name: "app_db".to_string(),
charset: Some("utf8mb4".to_string()),
collation: Some("utf8mb4_unicode_ci".to_string()),
}),
"CREATE DATABASE `app_db` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
);
}
#[test]
fn omits_create_database_charset_for_non_mysql_types() {
assert_eq!(
@ -562,10 +576,25 @@ mod tests {
);
}
#[test]
fn builds_vastbase_create_database_sql_without_mysql_charset_options() {
assert_eq!(
build_create_database_sql(CreateDatabaseSqlOptions {
database_type: Some(DatabaseType::Vastbase),
driver_profile: Some("vastbase".to_string()),
name: "app_db".to_string(),
charset: Some("utf8mb4".to_string()),
collation: Some("utf8mb4_unicode_ci".to_string()),
}),
"CREATE DATABASE \"app_db\";"
);
}
#[test]
fn recognizes_mysql_compatible_create_database_profiles() {
assert!(supports_create_database_charset(Some(DatabaseType::Mysql), Some("oceanbase")));
assert!(supports_create_database_charset(Some(DatabaseType::Mysql), Some("doris")));
assert!(supports_create_database_charset(Some(DatabaseType::Goldendb), Some("goldendb")));
assert!(!supports_create_database_charset(Some(DatabaseType::Postgres), None));
}

View File

@ -1,8 +1,13 @@
import assert from "node:assert/strict";
import { test } from "vitest";
import { isSchemaAware, usesTreeSchemaMode } from "../../apps/desktop/src/lib/databaseCapabilities.ts";
import { isSchemaAware, supportsDatabaseCreation, usesTreeSchemaMode } from "../../apps/desktop/src/lib/databaseCapabilities.ts";
test("TDengine uses database/catalog tree nodes without a schema layer", () => {
assert.equal(isSchemaAware("tdengine"), false);
assert.equal(usesTreeSchemaMode("tdengine"), false);
});
test("GoldenDB and Vastbase expose database creation", () => {
assert.equal(supportsDatabaseCreation("goldendb"), true);
assert.equal(supportsDatabaseCreation("vastbase"), true);
});