From 4fdfbf61c508438d71c45cc3993b25e15a68baf8 Mon Sep 17 00:00:00 2001 From: LRcoding <38545827+LwClick@users.noreply.github.com> Date: Thu, 2 Jul 2026 13:44:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(app):=20=E6=94=AF=E6=8C=81=20GoldenDB=20?= =?UTF-8?q?=E5=92=8C=20Vastbase=20=E6=96=B0=E5=BB=BA=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E5=85=A5=E5=8F=A3=20(#2361)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: zero --- .../assets/database-drivers.manifest.json | 4 +-- crates/dbx-core/src/db_admin_sql.rs | 29 +++++++++++++++++++ .../app-tests/databaseCapabilities.test.ts | 7 ++++- 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/crates/dbx-core/assets/database-drivers.manifest.json b/crates/dbx-core/assets/database-drivers.manifest.json index 52c26b9b2..5e62c0d60 100644 --- a/crates/dbx-core/assets/database-drivers.manifest.json +++ b/crates/dbx-core/assets/database-drivers.manifest.json @@ -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, diff --git a/crates/dbx-core/src/db_admin_sql.rs b/crates/dbx-core/src/db_admin_sql.rs index ddfb6acc4..41598a617 100644 --- a/crates/dbx-core/src/db_admin_sql.rs +++ b/crates/dbx-core/src/db_admin_sql.rs @@ -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)); } diff --git a/packages/app-tests/databaseCapabilities.test.ts b/packages/app-tests/databaseCapabilities.test.ts index f7cced073..f6198e0b7 100644 --- a/packages/app-tests/databaseCapabilities.test.ts +++ b/packages/app-tests/databaseCapabilities.test.ts @@ -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); +});