universal-db-mcp 2.11.0 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +1 -0
  2. package/README.zh-CN.md +1 -0
  3. package/dist/adapters/dm.d.ts +1 -0
  4. package/dist/adapters/dm.d.ts.map +1 -1
  5. package/dist/adapters/dm.js +125 -95
  6. package/dist/adapters/dm.js.map +1 -1
  7. package/dist/adapters/gaussdb.d.ts +5 -0
  8. package/dist/adapters/gaussdb.d.ts.map +1 -1
  9. package/dist/adapters/gaussdb.js +63 -38
  10. package/dist/adapters/gaussdb.js.map +1 -1
  11. package/dist/adapters/highgo.d.ts +5 -0
  12. package/dist/adapters/highgo.d.ts.map +1 -1
  13. package/dist/adapters/highgo.js +66 -39
  14. package/dist/adapters/highgo.js.map +1 -1
  15. package/dist/adapters/kingbase.d.ts +4 -0
  16. package/dist/adapters/kingbase.d.ts.map +1 -1
  17. package/dist/adapters/kingbase.js +65 -39
  18. package/dist/adapters/kingbase.js.map +1 -1
  19. package/dist/adapters/oracle.d.ts +1 -0
  20. package/dist/adapters/oracle.d.ts.map +1 -1
  21. package/dist/adapters/oracle.js +96 -43
  22. package/dist/adapters/oracle.js.map +1 -1
  23. package/dist/adapters/postgres.d.ts +5 -0
  24. package/dist/adapters/postgres.d.ts.map +1 -1
  25. package/dist/adapters/postgres.js +63 -42
  26. package/dist/adapters/postgres.js.map +1 -1
  27. package/dist/adapters/sqlserver.d.ts +1 -0
  28. package/dist/adapters/sqlserver.d.ts.map +1 -1
  29. package/dist/adapters/sqlserver.js +54 -35
  30. package/dist/adapters/sqlserver.js.map +1 -1
  31. package/dist/adapters/vastbase.d.ts +5 -0
  32. package/dist/adapters/vastbase.d.ts.map +1 -1
  33. package/dist/adapters/vastbase.js +67 -40
  34. package/dist/adapters/vastbase.js.map +1 -1
  35. package/dist/core/database-service.d.ts +6 -1
  36. package/dist/core/database-service.d.ts.map +1 -1
  37. package/dist/core/database-service.js +37 -3
  38. package/dist/core/database-service.js.map +1 -1
  39. package/dist/http/routes/schema.js +2 -2
  40. package/dist/http/routes/schema.js.map +1 -1
  41. package/dist/mcp/mcp-index.d.ts.map +1 -1
  42. package/dist/mcp/mcp-index.js +31 -11
  43. package/dist/mcp/mcp-index.js.map +1 -1
  44. package/dist/mcp/mcp-server.d.ts.map +1 -1
  45. package/dist/mcp/mcp-server.js +13 -4
  46. package/dist/mcp/mcp-server.js.map +1 -1
  47. package/dist/types/adapter.d.ts +3 -1
  48. package/dist/types/adapter.d.ts.map +1 -1
  49. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kingbase.d.ts","sourceRoot":"","sources":["../../src/adapters/kingbase.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAMX,MAAM,qBAAqB,CAAC;AAK7B,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,MAAM,CAMZ;gBAEU,MAAM,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAID;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;YACW,SAAS;IAWvB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA8B3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IActC;;OAEG;YACW,cAAc;IA6H5B;;OAEG;IACH,OAAO,CAAC,cAAc;IA6KtB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGzC"}
1
+ {"version":3,"file":"kingbase.d.ts","sourceRoot":"","sources":["../../src/adapters/kingbase.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAMX,MAAM,qBAAqB,CAAC;AAK7B,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,MAAM,CAMZ;gBAEU,MAAM,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAID;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;YACW,SAAS;IAWvB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IA8B3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IActC;;OAEG;YACW,cAAc;IAoI5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0LtB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGzC"}
@@ -121,9 +121,10 @@ export class KingbaseAdapter {
121
121
  // 获取当前数据库名
122
122
  const dbResult = await this.pool.query('SELECT current_database()');
123
123
  const databaseName = dbResult.rows[0]?.current_database || this.config.database || 'unknown';
124
- // 批量获取所有表的列信息
124
+ // 批量获取所有表的列信息(支持多 schema)
125
125
  const allColumnsResult = await this.pool.query(`
126
126
  SELECT
127
+ c.table_schema,
127
128
  c.table_name,
128
129
  c.column_name,
129
130
  c.data_type,
@@ -136,13 +137,14 @@ export class KingbaseAdapter {
136
137
  FROM information_schema.columns c
137
138
  JOIN information_schema.tables t
138
139
  ON c.table_schema = t.table_schema AND c.table_name = t.table_name
139
- WHERE c.table_schema = 'public'
140
+ WHERE c.table_schema NOT IN ('pg_catalog', 'information_schema', 'pg_toast')
140
141
  AND t.table_type = 'BASE TABLE'
141
- ORDER BY c.table_name, c.ordinal_position
142
+ ORDER BY c.table_schema, c.table_name, c.ordinal_position
142
143
  `);
143
144
  // 批量获取所有表的主键信息
144
145
  const allPrimaryKeysResult = await this.pool.query(`
145
146
  SELECT
147
+ n.nspname as schema_name,
146
148
  t.relname as table_name,
147
149
  a.attname as column_name
148
150
  FROM pg_index i
@@ -150,12 +152,13 @@ export class KingbaseAdapter {
150
152
  JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(i.indkey)
151
153
  JOIN pg_namespace n ON n.oid = t.relnamespace
152
154
  WHERE i.indisprimary
153
- AND n.nspname = 'public'
154
- ORDER BY t.relname, a.attnum
155
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast')
156
+ ORDER BY n.nspname, t.relname, a.attnum
155
157
  `);
156
158
  // 批量获取所有表的索引信息
157
159
  const allIndexesResult = await this.pool.query(`
158
160
  SELECT
161
+ n.nspname as schema_name,
159
162
  t.relname as table_name,
160
163
  i.relname as index_name,
161
164
  a.attname as column_name,
@@ -166,29 +169,32 @@ export class KingbaseAdapter {
166
169
  JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(ix.indkey)
167
170
  JOIN pg_namespace n ON n.oid = t.relnamespace
168
171
  WHERE t.relkind = 'r'
169
- AND n.nspname = 'public'
172
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast')
170
173
  AND NOT ix.indisprimary
171
- ORDER BY t.relname, i.relname, a.attnum
174
+ ORDER BY n.nspname, t.relname, i.relname, a.attnum
172
175
  `);
173
176
  // 批量获取所有表的行数估算和表注释
174
177
  const allStatsResult = await this.pool.query(`
175
178
  SELECT
179
+ n.nspname as schema_name,
176
180
  c.relname as table_name,
177
181
  c.reltuples::bigint as estimated_rows,
178
182
  obj_description(c.oid, 'pg_class') as table_comment
179
183
  FROM pg_class c
180
184
  JOIN pg_namespace n ON n.oid = c.relnamespace
181
185
  WHERE c.relkind = 'r'
182
- AND n.nspname = 'public'
186
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast')
183
187
  `);
184
188
  // 批量获取所有外键信息
185
189
  let allForeignKeys = [];
186
190
  try {
187
191
  const allForeignKeysResult = await this.pool.query(`
188
192
  SELECT
193
+ n.nspname AS schema_name,
189
194
  c.conname AS constraint_name,
190
195
  t.relname AS table_name,
191
196
  a.attname AS column_name,
197
+ rn.nspname AS ref_schema_name,
192
198
  rt.relname AS referenced_table,
193
199
  ra.attname AS referenced_column,
194
200
  CASE c.confdeltype
@@ -210,11 +216,12 @@ export class KingbaseAdapter {
210
216
  JOIN pg_class t ON t.oid = c.conrelid
211
217
  JOIN pg_class rt ON rt.oid = c.confrelid
212
218
  JOIN pg_namespace n ON n.oid = t.relnamespace
219
+ JOIN pg_namespace rn ON rn.oid = rt.relnamespace
213
220
  JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = ANY(c.conkey)
214
221
  JOIN pg_attribute ra ON ra.attrelid = rt.oid AND ra.attnum = c.confkey[array_position(c.conkey, a.attnum)]
215
222
  WHERE c.contype = 'f'
216
- AND n.nspname = 'public'
217
- ORDER BY t.relname, c.conname, array_position(c.conkey, a.attnum)
223
+ AND n.nspname NOT IN ('pg_catalog', 'information_schema', 'pg_toast')
224
+ ORDER BY n.nspname, t.relname, c.conname, array_position(c.conkey, a.attnum)
218
225
  `);
219
226
  allForeignKeys = allForeignKeysResult.rows;
220
227
  }
@@ -224,15 +231,26 @@ export class KingbaseAdapter {
224
231
  }
225
232
  return this.assembleSchema(databaseName, version, allColumnsResult.rows, allPrimaryKeysResult.rows, allIndexesResult.rows, allStatsResult.rows, allForeignKeys);
226
233
  }
234
+ /**
235
+ * 构建带 schema 前缀的表名键
236
+ */
237
+ makeTableKey(schemaName, tableName) {
238
+ return schemaName === 'public' ? tableName : `${schemaName}.${tableName}`;
239
+ }
227
240
  /**
228
241
  * 组装 Schema 信息
229
242
  */
230
243
  assembleSchema(databaseName, version, allColumns, allPrimaryKeys, allIndexes, allStats, allForeignKeys) {
244
+ // 按 schema.table 分组列信息
231
245
  const columnsByTable = new Map();
246
+ const schemaByTable = new Map();
232
247
  for (const col of allColumns) {
248
+ const schemaName = col.table_schema || 'public';
233
249
  const tableName = col.table_name;
234
- if (!columnsByTable.has(tableName)) {
235
- columnsByTable.set(tableName, []);
250
+ const tableKey = this.makeTableKey(schemaName, tableName);
251
+ if (!columnsByTable.has(tableKey)) {
252
+ columnsByTable.set(tableKey, []);
253
+ schemaByTable.set(tableKey, schemaName);
236
254
  }
237
255
  let dataType = col.data_type;
238
256
  if (col.character_maximum_length) {
@@ -241,29 +259,31 @@ export class KingbaseAdapter {
241
259
  else if (col.numeric_precision) {
242
260
  dataType += `(${col.numeric_precision}${col.numeric_scale ? `,${col.numeric_scale}` : ''})`;
243
261
  }
244
- columnsByTable.get(tableName).push({
262
+ columnsByTable.get(tableKey).push({
245
263
  name: col.column_name,
246
264
  type: dataType,
247
265
  nullable: col.is_nullable === 'YES',
248
266
  defaultValue: col.column_default || undefined,
249
267
  });
250
268
  }
269
+ // 按 schema.table 分组主键信息
251
270
  const primaryKeysByTable = new Map();
252
271
  for (const pk of allPrimaryKeys) {
253
- const tableName = pk.table_name;
254
- if (!primaryKeysByTable.has(tableName)) {
255
- primaryKeysByTable.set(tableName, []);
272
+ const tableKey = this.makeTableKey(pk.schema_name || 'public', pk.table_name);
273
+ if (!primaryKeysByTable.has(tableKey)) {
274
+ primaryKeysByTable.set(tableKey, []);
256
275
  }
257
- primaryKeysByTable.get(tableName).push(pk.column_name);
276
+ primaryKeysByTable.get(tableKey).push(pk.column_name);
258
277
  }
278
+ // 按 schema.table 分组索引信息
259
279
  const indexesByTable = new Map();
260
280
  for (const idx of allIndexes) {
261
- const tableName = idx.table_name;
281
+ const tableKey = this.makeTableKey(idx.schema_name || 'public', idx.table_name);
262
282
  const indexName = idx.index_name;
263
- if (!indexesByTable.has(tableName)) {
264
- indexesByTable.set(tableName, new Map());
283
+ if (!indexesByTable.has(tableKey)) {
284
+ indexesByTable.set(tableKey, new Map());
265
285
  }
266
- const tableIndexes = indexesByTable.get(tableName);
286
+ const tableIndexes = indexesByTable.get(tableKey);
267
287
  if (!tableIndexes.has(indexName)) {
268
288
  tableIndexes.set(indexName, {
269
289
  columns: [],
@@ -272,30 +292,33 @@ export class KingbaseAdapter {
272
292
  }
273
293
  tableIndexes.get(indexName).columns.push(idx.column_name);
274
294
  }
295
+ // 按 schema.table 分组行数统计
275
296
  const rowsByTable = new Map();
276
297
  const commentsByTable = new Map();
277
298
  for (const stat of allStats) {
278
- rowsByTable.set(stat.table_name, Number(stat.estimated_rows) || 0);
299
+ const tableKey = this.makeTableKey(stat.schema_name || 'public', stat.table_name);
300
+ rowsByTable.set(tableKey, Number(stat.estimated_rows) || 0);
279
301
  if (stat.table_comment) {
280
- commentsByTable.set(stat.table_name, stat.table_comment);
302
+ commentsByTable.set(tableKey, stat.table_comment);
281
303
  }
282
304
  }
283
- // 按表名分组外键信息
305
+ // 按 schema.table 分组外键信息
284
306
  const foreignKeysByTable = new Map();
285
307
  const relationships = [];
286
308
  for (const fk of allForeignKeys) {
287
- const tableName = fk.table_name;
309
+ const tableKey = this.makeTableKey(fk.schema_name || 'public', fk.table_name);
288
310
  const constraintName = fk.constraint_name;
289
- if (!tableName || !constraintName)
311
+ const refTableKey = this.makeTableKey(fk.ref_schema_name || 'public', fk.referenced_table);
312
+ if (!tableKey || !constraintName)
290
313
  continue;
291
- if (!foreignKeysByTable.has(tableName)) {
292
- foreignKeysByTable.set(tableName, new Map());
314
+ if (!foreignKeysByTable.has(tableKey)) {
315
+ foreignKeysByTable.set(tableKey, new Map());
293
316
  }
294
- const tableForeignKeys = foreignKeysByTable.get(tableName);
317
+ const tableForeignKeys = foreignKeysByTable.get(tableKey);
295
318
  if (!tableForeignKeys.has(constraintName)) {
296
319
  tableForeignKeys.set(constraintName, {
297
320
  columns: [],
298
- referencedTable: fk.referenced_table,
321
+ referencedTable: refTableKey,
299
322
  referencedColumns: [],
300
323
  onDelete: fk.delete_rule,
301
324
  onUpdate: fk.update_rule,
@@ -306,10 +329,10 @@ export class KingbaseAdapter {
306
329
  fkInfo.referencedColumns.push(fk.referenced_column);
307
330
  }
308
331
  // 生成全局关系视图
309
- for (const [tableName, tableForeignKeys] of foreignKeysByTable.entries()) {
332
+ for (const [tableKey, tableForeignKeys] of foreignKeysByTable.entries()) {
310
333
  for (const [constraintName, fkInfo] of tableForeignKeys.entries()) {
311
334
  relationships.push({
312
- fromTable: tableName,
335
+ fromTable: tableKey,
313
336
  fromColumns: fkInfo.columns,
314
337
  toTable: fkInfo.referencedTable,
315
338
  toColumns: fkInfo.referencedColumns,
@@ -318,9 +341,10 @@ export class KingbaseAdapter {
318
341
  });
319
342
  }
320
343
  }
344
+ // 组装表信息
321
345
  const tableInfos = [];
322
- for (const [tableName, columns] of columnsByTable.entries()) {
323
- const tableIndexes = indexesByTable.get(tableName);
346
+ for (const [tableKey, columns] of columnsByTable.entries()) {
347
+ const tableIndexes = indexesByTable.get(tableKey);
324
348
  const indexInfos = [];
325
349
  if (tableIndexes) {
326
350
  for (const [indexName, indexData] of tableIndexes.entries()) {
@@ -332,7 +356,7 @@ export class KingbaseAdapter {
332
356
  }
333
357
  }
334
358
  // 组装外键信息
335
- const tableForeignKeys = foreignKeysByTable.get(tableName);
359
+ const tableForeignKeys = foreignKeysByTable.get(tableKey);
336
360
  const foreignKeyInfos = [];
337
361
  if (tableForeignKeys) {
338
362
  for (const [constraintName, fkData] of tableForeignKeys.entries()) {
@@ -347,15 +371,17 @@ export class KingbaseAdapter {
347
371
  }
348
372
  }
349
373
  tableInfos.push({
350
- name: tableName,
351
- comment: commentsByTable.get(tableName) || undefined,
374
+ name: tableKey,
375
+ schema: schemaByTable.get(tableKey),
376
+ comment: commentsByTable.get(tableKey) || undefined,
352
377
  columns,
353
- primaryKeys: primaryKeysByTable.get(tableName) || [],
378
+ primaryKeys: primaryKeysByTable.get(tableKey) || [],
354
379
  indexes: indexInfos,
355
380
  foreignKeys: foreignKeyInfos.length > 0 ? foreignKeyInfos : undefined,
356
- estimatedRows: rowsByTable.get(tableName) || 0,
381
+ estimatedRows: rowsByTable.get(tableKey) || 0,
357
382
  });
358
383
  }
384
+ // 按表名排序
359
385
  tableInfos.sort((a, b) => a.name.localeCompare(b.name));
360
386
  return {
361
387
  databaseType: 'kingbase',
@@ -1 +1 @@
1
- {"version":3,"file":"kingbase.js","sourceRoot":"","sources":["../../src/adapters/kingbase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kingbase.js","sourceRoot":"","sources":["../../src/adapters/kingbase.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,7 @@ export declare class OracleAdapter implements DbAdapter {
45
45
  */
46
46
  getSchema(): Promise<SchemaInfo>;
47
47
  private _getSchemaImpl;
48
+ private makeTableKey;
48
49
  /**
49
50
  * 组装 Schema 信息
50
51
  */
@@ -1 +1 @@
1
- {"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../src/adapters/oracle.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAMX,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,MAAM,CAUZ;IACF,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAS;gBAEhC,MAAM,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAwBD,OAAO,CAAC,iBAAiB;YAOX,SAAS;YAIT,cAAc;IAK5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAyB3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;YAcxB,cAAc;IAyG5B;;OAEG;IACH,OAAO,CAAC,cAAc;IA4OtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuCxB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CA+BzC"}
1
+ {"version":3,"file":"oracle.d.ts","sourceRoot":"","sources":["../../src/adapters/oracle.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,UAAU,EAMX,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,MAAM,CAUZ;IACF,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAS;gBAEhC,MAAM,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAwBD,OAAO,CAAC,iBAAiB;YAOX,SAAS;YAIT,cAAc;IAK5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAyB3E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;YAcxB,cAAc;IA2I5B,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmQtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuCxB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CA+BzC"}
@@ -182,51 +182,79 @@ export class OracleAdapter {
182
182
  : 'unknown';
183
183
  // 获取当前用户
184
184
  const userResult = await connection.execute('SELECT USER FROM DUAL');
185
- const databaseName = userResult.rows?.[0]
185
+ const currentUser = userResult.rows?.[0]
186
186
  ? Object.values(userResult.rows[0])[0]
187
187
  : 'unknown';
188
+ const databaseName = currentUser;
188
189
  // 批量获取所有表的列信息
189
- const allColumnsResult = await connection.execute(`SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION,
190
+ const allColumnsResult = await connection.execute(`SELECT OWNER, TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION,
190
191
  DATA_SCALE, NULLABLE, DATA_DEFAULT, COLUMN_ID
191
192
  FROM ALL_TAB_COLUMNS
192
- WHERE OWNER = USER
193
+ WHERE OWNER NOT IN (
194
+ 'SYS', 'SYSTEM', 'DBSNMP', 'APPQOSSYS', 'DBSFWUSER',
195
+ 'OUTLN', 'GSMADMIN_INTERNAL', 'GGSYS', 'XDB', 'WMSYS',
196
+ 'MDSYS', 'ORDDATA', 'CTXSYS', 'ORDSYS', 'OLAPSYS',
197
+ 'LBACSYS', 'DVSYS', 'AUDSYS', 'OJVMSYS', 'REMOTE_SCHEDULER_AGENT'
198
+ )
193
199
  ORDER BY TABLE_NAME, COLUMN_ID`);
194
200
  // 批量获取所有列注释
195
- const allCommentsResult = await connection.execute(`SELECT TABLE_NAME, COLUMN_NAME, COMMENTS
201
+ const allCommentsResult = await connection.execute(`SELECT OWNER, TABLE_NAME, COLUMN_NAME, COMMENTS
196
202
  FROM ALL_COL_COMMENTS
197
- WHERE OWNER = USER
203
+ WHERE OWNER NOT IN (
204
+ 'SYS', 'SYSTEM', 'DBSNMP', 'APPQOSSYS', 'DBSFWUSER',
205
+ 'OUTLN', 'GSMADMIN_INTERNAL', 'GGSYS', 'XDB', 'WMSYS',
206
+ 'MDSYS', 'ORDDATA', 'CTXSYS', 'ORDSYS', 'OLAPSYS',
207
+ 'LBACSYS', 'DVSYS', 'AUDSYS', 'OJVMSYS', 'REMOTE_SCHEDULER_AGENT'
208
+ )
198
209
  AND COMMENTS IS NOT NULL`);
199
210
  // 批量获取所有主键信息
200
- const allPrimaryKeysResult = await connection.execute(`SELECT cons.TABLE_NAME, cols.COLUMN_NAME, cols.POSITION
211
+ const allPrimaryKeysResult = await connection.execute(`SELECT cons.OWNER, cons.TABLE_NAME, cols.COLUMN_NAME, cols.POSITION
201
212
  FROM ALL_CONSTRAINTS cons
202
213
  JOIN ALL_CONS_COLUMNS cols
203
214
  ON cons.CONSTRAINT_NAME = cols.CONSTRAINT_NAME
204
215
  AND cons.OWNER = cols.OWNER
205
216
  WHERE cons.CONSTRAINT_TYPE = 'P'
206
- AND cons.OWNER = USER
217
+ AND cons.OWNER NOT IN (
218
+ 'SYS', 'SYSTEM', 'DBSNMP', 'APPQOSSYS', 'DBSFWUSER',
219
+ 'OUTLN', 'GSMADMIN_INTERNAL', 'GGSYS', 'XDB', 'WMSYS',
220
+ 'MDSYS', 'ORDDATA', 'CTXSYS', 'ORDSYS', 'OLAPSYS',
221
+ 'LBACSYS', 'DVSYS', 'AUDSYS', 'OJVMSYS', 'REMOTE_SCHEDULER_AGENT'
222
+ )
207
223
  ORDER BY cons.TABLE_NAME, cols.POSITION`);
208
224
  // 批量获取所有索引信息
209
- const allIndexesResult = await connection.execute(`SELECT i.TABLE_NAME, i.INDEX_NAME, i.UNIQUENESS, ic.COLUMN_NAME, ic.COLUMN_POSITION
225
+ const allIndexesResult = await connection.execute(`SELECT i.TABLE_OWNER AS OWNER, i.TABLE_NAME, i.INDEX_NAME, i.UNIQUENESS, ic.COLUMN_NAME, ic.COLUMN_POSITION
210
226
  FROM ALL_INDEXES i
211
227
  JOIN ALL_IND_COLUMNS ic
212
228
  ON i.INDEX_NAME = ic.INDEX_NAME
213
229
  AND i.OWNER = ic.INDEX_OWNER
214
- WHERE i.OWNER = USER
230
+ WHERE i.OWNER NOT IN (
231
+ 'SYS', 'SYSTEM', 'DBSNMP', 'APPQOSSYS', 'DBSFWUSER',
232
+ 'OUTLN', 'GSMADMIN_INTERNAL', 'GGSYS', 'XDB', 'WMSYS',
233
+ 'MDSYS', 'ORDDATA', 'CTXSYS', 'ORDSYS', 'OLAPSYS',
234
+ 'LBACSYS', 'DVSYS', 'AUDSYS', 'OJVMSYS', 'REMOTE_SCHEDULER_AGENT'
235
+ )
215
236
  AND i.INDEX_TYPE != 'LOB'
216
237
  ORDER BY i.TABLE_NAME, i.INDEX_NAME, ic.COLUMN_POSITION`);
217
238
  // 批量获取所有表的行数估算和表注释
218
- const allStatsResult = await connection.execute(`SELECT t.TABLE_NAME, t.NUM_ROWS, c.COMMENTS AS TABLE_COMMENT
239
+ const allStatsResult = await connection.execute(`SELECT t.OWNER, t.TABLE_NAME, t.NUM_ROWS, c.COMMENTS AS TABLE_COMMENT
219
240
  FROM ALL_TABLES t
220
241
  LEFT JOIN ALL_TAB_COMMENTS c ON t.TABLE_NAME = c.TABLE_NAME AND t.OWNER = c.OWNER
221
- WHERE t.OWNER = USER
242
+ WHERE t.OWNER NOT IN (
243
+ 'SYS', 'SYSTEM', 'DBSNMP', 'APPQOSSYS', 'DBSFWUSER',
244
+ 'OUTLN', 'GSMADMIN_INTERNAL', 'GGSYS', 'XDB', 'WMSYS',
245
+ 'MDSYS', 'ORDDATA', 'CTXSYS', 'ORDSYS', 'OLAPSYS',
246
+ 'LBACSYS', 'DVSYS', 'AUDSYS', 'OJVMSYS', 'REMOTE_SCHEDULER_AGENT'
247
+ )
222
248
  AND t.TEMPORARY = 'N'`);
223
249
  // 批量获取所有外键信息
224
250
  let allForeignKeys = [];
225
251
  try {
226
252
  const allForeignKeysResult = await connection.execute(`SELECT
253
+ c.OWNER,
227
254
  c.TABLE_NAME,
228
255
  c.CONSTRAINT_NAME,
229
256
  cc.COLUMN_NAME,
257
+ rc.OWNER AS REF_OWNER,
230
258
  rc.TABLE_NAME AS REFERENCED_TABLE,
231
259
  rcc.COLUMN_NAME AS REFERENCED_COLUMN,
232
260
  c.DELETE_RULE,
@@ -236,7 +264,12 @@ export class OracleAdapter {
236
264
  JOIN ALL_CONSTRAINTS rc ON c.R_CONSTRAINT_NAME = rc.CONSTRAINT_NAME AND c.R_OWNER = rc.OWNER
237
265
  JOIN ALL_CONS_COLUMNS rcc ON rc.CONSTRAINT_NAME = rcc.CONSTRAINT_NAME AND rc.OWNER = rcc.OWNER AND cc.POSITION = rcc.POSITION
238
266
  WHERE c.CONSTRAINT_TYPE = 'R'
239
- AND c.OWNER = USER
267
+ AND c.OWNER NOT IN (
268
+ 'SYS', 'SYSTEM', 'DBSNMP', 'APPQOSSYS', 'DBSFWUSER',
269
+ 'OUTLN', 'GSMADMIN_INTERNAL', 'GGSYS', 'XDB', 'WMSYS',
270
+ 'MDSYS', 'ORDDATA', 'CTXSYS', 'ORDSYS', 'OLAPSYS',
271
+ 'LBACSYS', 'DVSYS', 'AUDSYS', 'OJVMSYS', 'REMOTE_SCHEDULER_AGENT'
272
+ )
240
273
  ORDER BY c.TABLE_NAME, c.CONSTRAINT_NAME, cc.POSITION`);
241
274
  allForeignKeys = allForeignKeysResult.rows || [];
242
275
  }
@@ -244,26 +277,33 @@ export class OracleAdapter {
244
277
  // 外键查询失败时忽略,返回空数组
245
278
  console.error('获取外键信息失败,跳过:', error instanceof Error ? error.message : String(error));
246
279
  }
247
- return this.assembleSchema(databaseName, version, allColumnsResult.rows || [], allCommentsResult.rows || [], allPrimaryKeysResult.rows || [], allIndexesResult.rows || [], allStatsResult.rows || [], allForeignKeys);
280
+ return this.assembleSchema(databaseName, version, allColumnsResult.rows || [], allCommentsResult.rows || [], allPrimaryKeysResult.rows || [], allIndexesResult.rows || [], allStatsResult.rows || [], allForeignKeys, currentUser);
248
281
  });
249
282
  }
283
+ makeTableKey(owner, tableName, currentUser) {
284
+ return owner === currentUser ? tableName : `${owner}.${tableName}`;
285
+ }
250
286
  /**
251
287
  * 组装 Schema 信息
252
288
  */
253
- assembleSchema(databaseName, version, allColumns, allComments, allPrimaryKeys, allIndexes, allStats, allForeignKeys) {
289
+ assembleSchema(databaseName, version, allColumns, allComments, allPrimaryKeys, allIndexes, allStats, allForeignKeys, currentUser) {
254
290
  // 按表名分组列信息
255
291
  const columnsByTable = new Map();
292
+ const schemaByTable = new Map();
256
293
  for (const col of allColumns) {
294
+ const owner = col.OWNER;
257
295
  const tableName = col.TABLE_NAME;
258
296
  const columnName = col.COLUMN_NAME;
259
297
  // 跳过无效数据
260
298
  if (!tableName || !columnName) {
261
299
  continue;
262
300
  }
263
- if (!columnsByTable.has(tableName)) {
264
- columnsByTable.set(tableName, []);
301
+ const tableKey = this.makeTableKey(owner, tableName, currentUser);
302
+ if (!columnsByTable.has(tableKey)) {
303
+ columnsByTable.set(tableKey, []);
304
+ schemaByTable.set(tableKey, owner);
265
305
  }
266
- columnsByTable.get(tableName).push({
306
+ columnsByTable.get(tableKey).push({
267
307
  name: columnName.toLowerCase(),
268
308
  type: this.formatOracleType(col.DATA_TYPE, col.DATA_LENGTH, col.DATA_PRECISION, col.DATA_SCALE),
269
309
  nullable: col.NULLABLE === 'Y',
@@ -273,6 +313,7 @@ export class OracleAdapter {
273
313
  // 按表名分组列注释
274
314
  const commentsByTable = new Map();
275
315
  for (const comment of allComments) {
316
+ const owner = comment.OWNER;
276
317
  const tableName = comment.TABLE_NAME;
277
318
  const columnName = comment.COLUMN_NAME;
278
319
  const comments = comment.COMMENTS;
@@ -280,14 +321,15 @@ export class OracleAdapter {
280
321
  if (!tableName || !columnName || !comments) {
281
322
  continue;
282
323
  }
283
- if (!commentsByTable.has(tableName)) {
284
- commentsByTable.set(tableName, new Map());
324
+ const tableKey = this.makeTableKey(owner, tableName, currentUser);
325
+ if (!commentsByTable.has(tableKey)) {
326
+ commentsByTable.set(tableKey, new Map());
285
327
  }
286
- commentsByTable.get(tableName).set(columnName.toLowerCase(), comments);
328
+ commentsByTable.get(tableKey).set(columnName.toLowerCase(), comments);
287
329
  }
288
330
  // 将注释添加到列信息中
289
- for (const [tableName, columns] of columnsByTable.entries()) {
290
- const tableComments = commentsByTable.get(tableName);
331
+ for (const [tableKey, columns] of columnsByTable.entries()) {
332
+ const tableComments = commentsByTable.get(tableKey);
291
333
  if (tableComments) {
292
334
  for (const col of columns) {
293
335
  if (tableComments.has(col.name)) {
@@ -299,20 +341,23 @@ export class OracleAdapter {
299
341
  // 按表名分组主键信息
300
342
  const primaryKeysByTable = new Map();
301
343
  for (const pk of allPrimaryKeys) {
344
+ const owner = pk.OWNER;
302
345
  const tableName = pk.TABLE_NAME;
303
346
  const columnName = pk.COLUMN_NAME;
304
347
  // 跳过无效数据
305
348
  if (!tableName || !columnName) {
306
349
  continue;
307
350
  }
308
- if (!primaryKeysByTable.has(tableName)) {
309
- primaryKeysByTable.set(tableName, []);
351
+ const tableKey = this.makeTableKey(owner, tableName, currentUser);
352
+ if (!primaryKeysByTable.has(tableKey)) {
353
+ primaryKeysByTable.set(tableKey, []);
310
354
  }
311
- primaryKeysByTable.get(tableName).push(columnName.toLowerCase());
355
+ primaryKeysByTable.get(tableKey).push(columnName.toLowerCase());
312
356
  }
313
357
  // 按表名分组索引信息
314
358
  const indexesByTable = new Map();
315
359
  for (const idx of allIndexes) {
360
+ const owner = idx.OWNER;
316
361
  const tableName = idx.TABLE_NAME;
317
362
  const indexName = idx.INDEX_NAME;
318
363
  const columnName = idx.COLUMN_NAME;
@@ -324,10 +369,11 @@ export class OracleAdapter {
324
369
  if (indexName.includes('PK_') || indexName.includes('SYS_')) {
325
370
  continue;
326
371
  }
327
- if (!indexesByTable.has(tableName)) {
328
- indexesByTable.set(tableName, new Map());
372
+ const tableKey = this.makeTableKey(owner, tableName, currentUser);
373
+ if (!indexesByTable.has(tableKey)) {
374
+ indexesByTable.set(tableKey, new Map());
329
375
  }
330
- const tableIndexes = indexesByTable.get(tableName);
376
+ const tableIndexes = indexesByTable.get(tableKey);
331
377
  if (!tableIndexes.has(indexName)) {
332
378
  tableIndexes.set(indexName, {
333
379
  columns: [],
@@ -340,11 +386,13 @@ export class OracleAdapter {
340
386
  const rowsByTable = new Map();
341
387
  const tableCommentsByTable = new Map();
342
388
  for (const stat of allStats) {
389
+ const owner = stat.OWNER;
343
390
  const tableName = stat.TABLE_NAME;
344
391
  if (tableName) {
345
- rowsByTable.set(tableName, stat.NUM_ROWS || 0);
392
+ const tableKey = this.makeTableKey(owner, tableName, currentUser);
393
+ rowsByTable.set(tableKey, stat.NUM_ROWS || 0);
346
394
  if (stat.TABLE_COMMENT) {
347
- tableCommentsByTable.set(tableName, stat.TABLE_COMMENT);
395
+ tableCommentsByTable.set(tableKey, stat.TABLE_COMMENT);
348
396
  }
349
397
  }
350
398
  }
@@ -352,18 +400,22 @@ export class OracleAdapter {
352
400
  const foreignKeysByTable = new Map();
353
401
  const relationships = [];
354
402
  for (const fk of allForeignKeys) {
403
+ const owner = fk.OWNER;
355
404
  const tableName = fk.TABLE_NAME;
356
405
  const constraintName = fk.CONSTRAINT_NAME;
357
406
  if (!tableName || !constraintName)
358
407
  continue;
359
- if (!foreignKeysByTable.has(tableName)) {
360
- foreignKeysByTable.set(tableName, new Map());
408
+ const tableKey = this.makeTableKey(owner, tableName, currentUser);
409
+ const refOwner = fk.REF_OWNER;
410
+ const refTableKey = this.makeTableKey(refOwner, fk.REFERENCED_TABLE, currentUser);
411
+ if (!foreignKeysByTable.has(tableKey)) {
412
+ foreignKeysByTable.set(tableKey, new Map());
361
413
  }
362
- const tableForeignKeys = foreignKeysByTable.get(tableName);
414
+ const tableForeignKeys = foreignKeysByTable.get(tableKey);
363
415
  if (!tableForeignKeys.has(constraintName)) {
364
416
  tableForeignKeys.set(constraintName, {
365
417
  columns: [],
366
- referencedTable: fk.REFERENCED_TABLE,
418
+ referencedTable: refTableKey,
367
419
  referencedColumns: [],
368
420
  onDelete: fk.DELETE_RULE,
369
421
  });
@@ -373,10 +425,10 @@ export class OracleAdapter {
373
425
  fkInfo.referencedColumns.push(String(fk.REFERENCED_COLUMN).toLowerCase());
374
426
  }
375
427
  // 生成全局关系视图
376
- for (const [tableName, tableForeignKeys] of foreignKeysByTable.entries()) {
428
+ for (const [tableKey, tableForeignKeys] of foreignKeysByTable.entries()) {
377
429
  for (const [constraintName, fkInfo] of tableForeignKeys.entries()) {
378
430
  relationships.push({
379
- fromTable: tableName.toLowerCase(),
431
+ fromTable: tableKey.toLowerCase(),
380
432
  fromColumns: fkInfo.columns,
381
433
  toTable: fkInfo.referencedTable.toLowerCase(),
382
434
  toColumns: fkInfo.referencedColumns,
@@ -387,8 +439,8 @@ export class OracleAdapter {
387
439
  }
388
440
  // 组装表信息(基于列信息构建,不依赖 ALL_TABLES 的结果)
389
441
  const tableInfos = [];
390
- for (const [tableName, columns] of columnsByTable.entries()) {
391
- const tableIndexes = indexesByTable.get(tableName);
442
+ for (const [tableKey, columns] of columnsByTable.entries()) {
443
+ const tableIndexes = indexesByTable.get(tableKey);
392
444
  const indexInfos = [];
393
445
  if (tableIndexes) {
394
446
  for (const [indexName, indexData] of tableIndexes.entries()) {
@@ -400,7 +452,7 @@ export class OracleAdapter {
400
452
  }
401
453
  }
402
454
  // 组装外键信息
403
- const tableForeignKeys = foreignKeysByTable.get(tableName);
455
+ const tableForeignKeys = foreignKeysByTable.get(tableKey);
404
456
  const foreignKeyInfos = [];
405
457
  if (tableForeignKeys) {
406
458
  for (const [constraintName, fkData] of tableForeignKeys.entries()) {
@@ -414,13 +466,14 @@ export class OracleAdapter {
414
466
  }
415
467
  }
416
468
  tableInfos.push({
417
- name: tableName.toLowerCase(),
418
- comment: tableCommentsByTable.get(tableName) || undefined,
469
+ name: tableKey.toLowerCase(),
470
+ schema: schemaByTable.get(tableKey),
471
+ comment: tableCommentsByTable.get(tableKey) || undefined,
419
472
  columns,
420
- primaryKeys: primaryKeysByTable.get(tableName) || [],
473
+ primaryKeys: primaryKeysByTable.get(tableKey) || [],
421
474
  indexes: indexInfos,
422
475
  foreignKeys: foreignKeyInfos.length > 0 ? foreignKeyInfos : undefined,
423
- estimatedRows: rowsByTable.get(tableName) || 0,
476
+ estimatedRows: rowsByTable.get(tableKey) || 0,
424
477
  });
425
478
  }
426
479
  // 按表名排序