feat: add 12 new agent-driven databases, migrate GaussDB to agent

Add H2, Snowflake, Trino, Hive, DB2, Informix, Neo4j, Cassandra,
BigQuery, Apache Kylin, SunDB as new agent-driven database types.
Migrate GaussDB from native rust-gaussdb to JDBC agent.

Remove rust-gaussdb dependency. Total agent-driven databases: 17.
This commit is contained in:
t8y2
2026-05-13 09:47:22 +08:00
parent c50323cd6c
commit 7ce2cf2163
16 changed files with 245 additions and 574 deletions
@@ -184,6 +184,17 @@ const driverProfiles: Record<
icon: "cockroachdb",
},
dm: { type: "dameng", port: 5236, user: "SYSDBA", label: "DM (Dameng)", icon: "dm" },
h2: { type: "h2", port: 9092, user: "sa", label: "H2", icon: "h2" },
snowflake: { type: "snowflake", port: 443, user: "", label: "Snowflake", icon: "snowflake" },
trino: { type: "trino", port: 8080, user: "", label: "Trino", icon: "trino" },
hive: { type: "hive", port: 10000, user: "", label: "Apache Hive", icon: "hive" },
db2: { type: "db2", port: 50000, user: "db2inst1", label: "IBM DB2", icon: "db2" },
informix: { type: "informix", port: 9088, user: "informix", label: "Informix", icon: "informix" },
neo4j: { type: "neo4j", port: 7687, user: "neo4j", label: "Neo4j", icon: "neo4j" },
cassandra: { type: "cassandra", port: 9042, user: "cassandra", label: "Cassandra", icon: "cassandra" },
bigquery: { type: "bigquery", port: 443, user: "", label: "BigQuery", icon: "bigquery" },
kylin: { type: "kylin", port: 7070, user: "ADMIN", label: "Apache Kylin", icon: "kylin" },
sundb: { type: "sundb", port: 22000, user: "root", label: "SunDB", icon: "sundb" },
jdbc: { type: "jdbc", port: 0, user: "", label: "JDBC", icon: "jdbc" },
tdengine: { type: "mysql", port: 6030, user: "root", label: "TDengine", icon: "tdengine" },
custom_mysql: {
@@ -362,6 +373,17 @@ const iconTypeMap: Record<string, string> = {
cockroachdb: "cockroachdb",
tdengine: "tdengine",
dm: "dm",
h2: "h2",
snowflake: "snowflake",
trino: "trino",
hive: "hive",
db2: "db2",
informix: "informix",
neo4j: "neo4j",
cassandra: "cassandra",
bigquery: "bigquery",
kylin: "kylin",
sundb: "sundb",
jdbc: "jdbc",
custom_mysql: "mysql",
custom_postgres: "postgres",
@@ -393,6 +415,17 @@ const dbOptions = [
{ value: "vastbase", label: "Vastbase" },
{ value: "redshift", label: "Redshift" },
{ value: "cockroachdb", label: "CockroachDB" },
{ value: "h2", label: "H2" },
{ value: "snowflake", label: "Snowflake" },
{ value: "trino", label: "Trino" },
{ value: "hive", label: "Hive" },
{ value: "db2", label: "DB2" },
{ value: "informix", label: "Informix" },
{ value: "neo4j", label: "Neo4j" },
{ value: "cassandra", label: "Cassandra" },
{ value: "bigquery", label: "BigQuery" },
{ value: "kylin", label: "Kylin" },
{ value: "sundb", label: "SunDB" },
{ value: "jdbc", label: "JDBC" },
{ value: "custom_mysql", label: "Custom (MySQL)" },
{ value: "custom_postgres", label: "Custom (PostgreSQL)" },
+2
View File
@@ -31,6 +31,8 @@ const assetIcons: Record<string, string> = {
hive: "hive",
apache_kylin: "apache_kylin",
sundb: "sundb",
trino: "presto",
kylin: "apache_kylin",
cockroachdb: "cockroachdb",
db2: "db2",
bigquery: "bigquery",
+36 -1
View File
@@ -10,6 +10,10 @@ export const SCHEMA_AWARE_TYPES = new Set<DatabaseType>([
"kingbase",
"vastbase",
"jdbc",
"h2",
"snowflake",
"db2",
"informix",
]);
export const SQL_FILE_UNSUPPORTED_TYPES = new Set<DatabaseType>(["redis", "mongodb", "elasticsearch"]);
@@ -26,6 +30,8 @@ export const DIAGRAM_SUPPORTED_TYPES = new Set<DatabaseType>([
"kingbase",
"vastbase",
"goldendb",
"h2",
"db2",
]);
export const DATABASE_SEARCH_SUPPORTED_TYPES = new Set<DatabaseType>([
@@ -42,6 +48,17 @@ export const DATABASE_SEARCH_SUPPORTED_TYPES = new Set<DatabaseType>([
"kingbase",
"vastbase",
"goldendb",
"h2",
"snowflake",
"trino",
"hive",
"db2",
"informix",
"neo4j",
"cassandra",
"bigquery",
"kylin",
"sundb",
]);
export const TABLE_IMPORT_SUPPORTED_TYPES = new Set<DatabaseType>([
@@ -96,7 +113,25 @@ export const TREE_SCHEMA_TYPES = new Set<DatabaseType>(["postgres", "redshift",
export const PG_LIKE_STRUCTURE_TYPES = new Set<DatabaseType>(["postgres", "redshift", "gaussdb"]);
export const AGENT_DRIVER_TYPES = new Set<DatabaseType>(["dameng", "kingbase", "vastbase", "goldendb", "oracle"]);
export const AGENT_DRIVER_TYPES = new Set<DatabaseType>([
"dameng",
"kingbase",
"vastbase",
"goldendb",
"oracle",
"h2",
"snowflake",
"trino",
"hive",
"db2",
"informix",
"neo4j",
"cassandra",
"bigquery",
"kylin",
"sundb",
"gaussdb",
]);
export const TRANSFER_SQL_TYPES = new Set<DatabaseType>([
"mysql",
+11
View File
@@ -162,6 +162,17 @@ export const useConnectionStore = defineStore("connection", () => {
kingbase: "KingBase",
vastbase: "Vastbase",
goldendb: "GoldenDB",
h2: "H2",
snowflake: "Snowflake",
trino: "Trino",
hive: "Hive",
db2: "DB2",
informix: "Informix",
neo4j: "Neo4j",
cassandra: "Cassandra",
bigquery: "BigQuery",
kylin: "Kylin",
sundb: "SunDB",
};
const profile = config.driver_profile || config.db_type;
+11
View File
@@ -17,6 +17,17 @@ export type DatabaseType =
| "kingbase"
| "vastbase"
| "goldendb"
| "h2"
| "snowflake"
| "trino"
| "hive"
| "db2"
| "informix"
| "neo4j"
| "cassandra"
| "bigquery"
| "kylin"
| "sundb"
| "jdbc";
export interface ConnectionConfig {