fdb2 1.0.2 → 1.0.3

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 (91) hide show
  1. package/dist/public/.vite/manifest.json +82 -0
  2. package/dist/public/bootstrap-icons.woff +0 -0
  3. package/dist/public/bootstrap-icons.woff2 +0 -0
  4. package/dist/public/bootstrap.css +14152 -0
  5. package/dist/public/bootstrap.js +5038 -0
  6. package/dist/public/explorer.css +2137 -0
  7. package/dist/public/explorer.js +49846 -0
  8. package/dist/public/index.css +1071 -0
  9. package/dist/public/index.js +12811 -0
  10. package/dist/public/layout.css +318 -0
  11. package/dist/public/layout.js +25 -0
  12. package/dist/public/vue.css +1 -0
  13. package/dist/public/vue.js +9111 -0
  14. package/dist/server/index.d.ts +2 -0
  15. package/dist/server/index.d.ts.map +1 -0
  16. package/dist/server/index.js +598 -0
  17. package/dist/server/index.js.map +1 -0
  18. package/dist/server/index.ts +677 -0
  19. package/dist/server/model/connection.entity.d.ts +55 -0
  20. package/dist/server/model/connection.entity.d.ts.map +1 -0
  21. package/dist/server/model/connection.entity.js +59 -0
  22. package/dist/server/model/connection.entity.js.map +1 -0
  23. package/dist/server/model/connection.entity.ts +66 -0
  24. package/dist/server/model/database.entity.d.ts +203 -0
  25. package/dist/server/model/database.entity.d.ts.map +1 -0
  26. package/dist/server/model/database.entity.js +211 -0
  27. package/dist/server/model/database.entity.js.map +1 -0
  28. package/dist/server/model/database.entity.ts +246 -0
  29. package/dist/server/service/connection.service.d.ts +79 -0
  30. package/dist/server/service/connection.service.d.ts.map +1 -0
  31. package/dist/server/service/connection.service.js +351 -0
  32. package/dist/server/service/connection.service.js.map +1 -0
  33. package/dist/server/service/connection.service.ts +341 -0
  34. package/dist/server/service/database/base.service.d.ts +152 -0
  35. package/dist/server/service/database/base.service.d.ts.map +1 -0
  36. package/dist/server/service/database/base.service.js +236 -0
  37. package/dist/server/service/database/base.service.js.map +1 -0
  38. package/dist/server/service/database/base.service.ts +363 -0
  39. package/dist/server/service/database/cockroachdb.service.d.ts +95 -0
  40. package/dist/server/service/database/cockroachdb.service.d.ts.map +1 -0
  41. package/dist/server/service/database/cockroachdb.service.js +634 -0
  42. package/dist/server/service/database/cockroachdb.service.js.map +1 -0
  43. package/dist/server/service/database/cockroachdb.service.ts +659 -0
  44. package/dist/server/service/database/database.service.d.ts +487 -0
  45. package/dist/server/service/database/database.service.d.ts.map +1 -0
  46. package/dist/server/service/database/database.service.js +580 -0
  47. package/dist/server/service/database/database.service.js.map +1 -0
  48. package/dist/server/service/database/database.service.ts +630 -0
  49. package/dist/server/service/database/index.d.ts +8 -0
  50. package/dist/server/service/database/index.d.ts.map +1 -0
  51. package/dist/server/service/database/index.js +18 -0
  52. package/dist/server/service/database/index.js.map +1 -0
  53. package/dist/server/service/database/index.ts +7 -0
  54. package/dist/server/service/database/mongodb.service.d.ts +99 -0
  55. package/dist/server/service/database/mongodb.service.d.ts.map +1 -0
  56. package/dist/server/service/database/mongodb.service.js +459 -0
  57. package/dist/server/service/database/mongodb.service.js.map +1 -0
  58. package/dist/server/service/database/mongodb.service.ts +454 -0
  59. package/dist/server/service/database/mssql.service.d.ts +98 -0
  60. package/dist/server/service/database/mssql.service.d.ts.map +1 -0
  61. package/dist/server/service/database/mssql.service.js +694 -0
  62. package/dist/server/service/database/mssql.service.js.map +1 -0
  63. package/dist/server/service/database/mssql.service.ts +723 -0
  64. package/dist/server/service/database/mysql.service.d.ts +94 -0
  65. package/dist/server/service/database/mysql.service.d.ts.map +1 -0
  66. package/dist/server/service/database/mysql.service.js +735 -0
  67. package/dist/server/service/database/mysql.service.js.map +1 -0
  68. package/dist/server/service/database/mysql.service.ts +761 -0
  69. package/dist/server/service/database/oracle.service.d.ts +106 -0
  70. package/dist/server/service/database/oracle.service.d.ts.map +1 -0
  71. package/dist/server/service/database/oracle.service.js +787 -0
  72. package/dist/server/service/database/oracle.service.js.map +1 -0
  73. package/dist/server/service/database/oracle.service.ts +832 -0
  74. package/dist/server/service/database/postgres.service.d.ts +102 -0
  75. package/dist/server/service/database/postgres.service.d.ts.map +1 -0
  76. package/dist/server/service/database/postgres.service.js +696 -0
  77. package/dist/server/service/database/postgres.service.js.map +1 -0
  78. package/dist/server/service/database/postgres.service.ts +741 -0
  79. package/dist/server/service/database/sap.service.d.ts +95 -0
  80. package/dist/server/service/database/sap.service.d.ts.map +1 -0
  81. package/dist/server/service/database/sap.service.js +695 -0
  82. package/dist/server/service/database/sap.service.js.map +1 -0
  83. package/dist/server/service/database/sap.service.ts +713 -0
  84. package/dist/server/service/database/sqlite.service.d.ts +92 -0
  85. package/dist/server/service/database/sqlite.service.d.ts.map +1 -0
  86. package/dist/server/service/database/sqlite.service.js +532 -0
  87. package/dist/server/service/database/sqlite.service.js.map +1 -0
  88. package/dist/server/service/database/sqlite.service.ts +559 -0
  89. package/dist/server/service/session.service.ts +158 -0
  90. package/dist/view/index.html +45 -0
  91. package/package.json +1 -1
@@ -0,0 +1,580 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabaseService = void 0;
4
+ const connection_service_1 = require("../connection.service");
5
+ const mysql_service_1 = require("./mysql.service");
6
+ const postgres_service_1 = require("./postgres.service");
7
+ const sqlite_service_1 = require("./sqlite.service");
8
+ const oracle_service_1 = require("./oracle.service");
9
+ const mssql_service_1 = require("./mssql.service");
10
+ const cockroachdb_service_1 = require("./cockroachdb.service");
11
+ const mongodb_service_1 = require("./mongodb.service");
12
+ const sap_service_1 = require("./sap.service");
13
+ /**
14
+ * 数据库服务管理类
15
+ * 负责根据数据库类型选择相应的服务实现
16
+ */
17
+ class DatabaseService {
18
+ connectionService;
19
+ mysqlService;
20
+ postgreSQLService;
21
+ sqliteService;
22
+ oracleService;
23
+ sqlServerService;
24
+ cockroachDBService;
25
+ mongoDBService;
26
+ sapHANADatabaseService;
27
+ constructor() {
28
+ this.connectionService = new connection_service_1.ConnectionService();
29
+ this.mysqlService = new mysql_service_1.MySQLService();
30
+ this.postgreSQLService = new postgres_service_1.PostgreSQLService();
31
+ this.sqliteService = new sqlite_service_1.SQLiteService();
32
+ this.oracleService = new oracle_service_1.OracleService();
33
+ this.sqlServerService = new mssql_service_1.SQLServerService();
34
+ this.cockroachDBService = new cockroachdb_service_1.CockroachDBService();
35
+ this.mongoDBService = new mongodb_service_1.MongoDBService();
36
+ this.sapHANADatabaseService = new sap_service_1.SAPHANADatabaseService();
37
+ }
38
+ /**
39
+ * 获取数据库服务实例
40
+ */
41
+ getDatabaseService(type) {
42
+ switch (type.toLowerCase()) {
43
+ case 'mysql':
44
+ case 'aurora-mysql':
45
+ case 'auroramysql':
46
+ return this.mysqlService;
47
+ case 'postgres':
48
+ case 'postgresql':
49
+ case 'aurora-postgres':
50
+ case 'aurorapostgres':
51
+ case 'aurora-postgresql':
52
+ return this.postgreSQLService;
53
+ case 'sqlite':
54
+ case 'better-sqlite3':
55
+ case 'bettersqlite3':
56
+ return this.sqliteService;
57
+ case 'oracle':
58
+ return this.oracleService;
59
+ case 'mssql':
60
+ case 'sqlserver':
61
+ return this.sqlServerService;
62
+ case 'cockroachdb':
63
+ case 'cockroach':
64
+ return this.cockroachDBService;
65
+ case 'mongodb':
66
+ case 'mongo':
67
+ return this.mongoDBService;
68
+ case 'sap':
69
+ case 'sap-hana':
70
+ case 'saphana':
71
+ return this.sapHANADatabaseService;
72
+ default:
73
+ throw new Error(`不支持的数据库类型: ${type}`);
74
+ }
75
+ }
76
+ /**
77
+ * 获取数据库列表
78
+ */
79
+ async getDatabases(connectionId) {
80
+ const dataSource = await this.connectionService.getActiveConnection(connectionId);
81
+ const databaseService = this.getDatabaseService(dataSource.options.type);
82
+ return databaseService.getDatabases(dataSource);
83
+ }
84
+ /**
85
+ * 获取数据库详细信息
86
+ */
87
+ async getDatabaseInfo(connectionId, databaseName) {
88
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
89
+ const databaseService = this.getDatabaseService(dataSource.options.type);
90
+ return databaseService.getDatabaseInfo(dataSource, databaseName);
91
+ }
92
+ /**
93
+ * 获取数据库表列表
94
+ */
95
+ async getTables(connectionId, databaseName) {
96
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
97
+ const databaseService = this.getDatabaseService(dataSource.options.type);
98
+ return databaseService.getTables(dataSource, databaseName);
99
+ }
100
+ /**
101
+ * 获取表详细信息
102
+ */
103
+ async getTableInfo(connectionId, databaseName, tableName) {
104
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
105
+ const databaseService = this.getDatabaseService(dataSource.options.type);
106
+ return databaseService.getTableInfo(dataSource, databaseName, tableName);
107
+ }
108
+ /**
109
+ * 获取表数据
110
+ */
111
+ async getTableData(connectionId, databaseName, tableName, page = 1, pageSize = 100, where, orderBy) {
112
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
113
+ const databaseService = this.getDatabaseService(dataSource.options.type);
114
+ return databaseService.getTableData(dataSource, databaseName, tableName, page, pageSize, where, orderBy);
115
+ }
116
+ /**
117
+ * 执行SQL查询
118
+ */
119
+ async executeQuery(connectionId, sql, databaseName) {
120
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
121
+ const databaseService = this.getDatabaseService(dataSource.options.type);
122
+ return databaseService.executeQuery(dataSource, sql);
123
+ }
124
+ /**
125
+ * 获取视图列表
126
+ */
127
+ async getViews(connectionId, databaseName) {
128
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
129
+ const databaseService = this.getDatabaseService(dataSource.options.type);
130
+ return databaseService.getViews(dataSource, databaseName);
131
+ }
132
+ /**
133
+ * 获取视图定义
134
+ */
135
+ async getViewDefinition(connectionId, databaseName, viewName) {
136
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
137
+ const databaseService = this.getDatabaseService(dataSource.options.type);
138
+ return databaseService.getViewDefinition(dataSource, databaseName, viewName);
139
+ }
140
+ /**
141
+ * 获取存储过程列表
142
+ */
143
+ async getProcedures(connectionId, databaseName) {
144
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
145
+ const databaseService = this.getDatabaseService(dataSource.options.type);
146
+ return databaseService.getProcedures(dataSource, databaseName);
147
+ }
148
+ /**
149
+ * 获取存储过程定义
150
+ */
151
+ async getProcedureDefinition(connectionId, databaseName, procedureName) {
152
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
153
+ const databaseService = this.getDatabaseService(dataSource.options.type);
154
+ return databaseService.getProcedureDefinition(dataSource, databaseName, procedureName);
155
+ }
156
+ /**
157
+ * 测试数据库连接
158
+ */
159
+ async testConnection(connectionId) {
160
+ const dataSource = await this.connectionService.getActiveConnection(connectionId);
161
+ const databaseService = this.getDatabaseService(dataSource.options.type);
162
+ return databaseService.testConnection(dataSource);
163
+ }
164
+ /**
165
+ * 获取支持的数据库类型
166
+ */
167
+ getSupportedDatabaseTypes() {
168
+ return [
169
+ {
170
+ value: 'mysql',
171
+ label: 'MySQL',
172
+ icon: 'bi-database',
173
+ defaultPort: 3306,
174
+ description: 'MySQL数据库',
175
+ features: {
176
+ supportSchemas: false,
177
+ supportProcedures: true,
178
+ supportTriggers: true,
179
+ supportViews: true,
180
+ supportFullTextSearch: true,
181
+ supportJson: true
182
+ }
183
+ },
184
+ {
185
+ value: 'postgres',
186
+ label: 'PostgreSQL',
187
+ icon: 'bi-database',
188
+ defaultPort: 5432,
189
+ description: 'PostgreSQL数据库',
190
+ features: {
191
+ supportSchemas: true,
192
+ supportProcedures: true,
193
+ supportTriggers: true,
194
+ supportViews: true,
195
+ supportFullTextSearch: true,
196
+ supportJson: true,
197
+ supportArrays: true,
198
+ supportEnum: true
199
+ }
200
+ },
201
+ {
202
+ value: 'sqlite',
203
+ label: 'SQLite',
204
+ icon: 'bi-database',
205
+ defaultPort: null,
206
+ description: 'SQLite数据库文件',
207
+ features: {
208
+ supportSchemas: false,
209
+ supportProcedures: false,
210
+ supportTriggers: true,
211
+ supportViews: true,
212
+ supportFullTextSearch: true,
213
+ supportJson: false,
214
+ supportArrays: false
215
+ }
216
+ },
217
+ {
218
+ value: 'oracle',
219
+ label: 'Oracle',
220
+ icon: 'bi-database',
221
+ defaultPort: 1521,
222
+ description: 'Oracle数据库',
223
+ features: {
224
+ supportSchemas: true,
225
+ supportProcedures: true,
226
+ supportTriggers: true,
227
+ supportViews: true,
228
+ supportFullTextSearch: true,
229
+ supportJson: false,
230
+ supportArrays: false,
231
+ supportSequences: true,
232
+ supportSynonyms: true
233
+ }
234
+ },
235
+ {
236
+ value: 'mssql',
237
+ label: 'SQL Server',
238
+ icon: 'bi-database',
239
+ defaultPort: 1433,
240
+ description: 'Microsoft SQL Server',
241
+ features: {
242
+ supportSchemas: false,
243
+ supportProcedures: true,
244
+ supportTriggers: true,
245
+ supportViews: true,
246
+ supportFullTextSearch: true,
247
+ supportJson: true,
248
+ supportArrays: false,
249
+ supportStoredProcedures: true
250
+ }
251
+ },
252
+ {
253
+ value: 'cockroachdb',
254
+ label: 'CockroachDB',
255
+ icon: 'bi-database',
256
+ defaultPort: 26257,
257
+ description: 'CockroachDB分布式SQL数据库',
258
+ features: {
259
+ supportSchemas: true,
260
+ supportProcedures: true,
261
+ supportTriggers: true,
262
+ supportViews: true,
263
+ supportFullTextSearch: true,
264
+ supportJson: true,
265
+ supportArrays: true,
266
+ supportEnum: true,
267
+ supportDistributed: true
268
+ }
269
+ },
270
+ {
271
+ value: 'mongodb',
272
+ label: 'MongoDB',
273
+ icon: 'bi-database',
274
+ defaultPort: 27017,
275
+ description: 'MongoDB文档数据库',
276
+ features: {
277
+ supportSchemas: false,
278
+ supportProcedures: false,
279
+ supportTriggers: false,
280
+ supportViews: false,
281
+ supportFullTextSearch: true,
282
+ supportJson: true,
283
+ supportArrays: true,
284
+ supportDocuments: true,
285
+ supportNoSQL: true
286
+ }
287
+ },
288
+ {
289
+ value: 'sap',
290
+ label: 'SAP HANA',
291
+ icon: 'bi-database',
292
+ defaultPort: 39013,
293
+ description: 'SAP HANA内存数据库',
294
+ features: {
295
+ supportSchemas: true,
296
+ supportProcedures: true,
297
+ supportTriggers: true,
298
+ supportViews: true,
299
+ supportFullTextSearch: true,
300
+ supportJson: true,
301
+ supportArrays: false,
302
+ supportInMemory: true,
303
+ supportHighPerformance: true
304
+ }
305
+ }
306
+ ];
307
+ }
308
+ /**
309
+ * 创建数据库
310
+ */
311
+ async createDatabase(connectionId, databaseName, options) {
312
+ const dataSource = await this.connectionService.getActiveConnection(connectionId);
313
+ const databaseService = this.getDatabaseService(dataSource.options.type);
314
+ return databaseService.createDatabase(dataSource, databaseName, options);
315
+ }
316
+ /**
317
+ * 删除数据库
318
+ */
319
+ async dropDatabase(connectionId, databaseName) {
320
+ const dataSource = await this.connectionService.getActiveConnection(connectionId);
321
+ const databaseService = this.getDatabaseService(dataSource.options.type);
322
+ return databaseService.dropDatabase(dataSource, databaseName);
323
+ }
324
+ /**
325
+ * 导出数据库架构
326
+ */
327
+ async exportSchema(connectionId, databaseName) {
328
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
329
+ const databaseService = this.getDatabaseService(dataSource.options.type);
330
+ return databaseService.exportSchema(dataSource, databaseName);
331
+ }
332
+ /**
333
+ * 查看数据库日志
334
+ */
335
+ async viewLogs(connectionId, databaseName, limit = 100) {
336
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
337
+ const databaseService = this.getDatabaseService(dataSource.options.type);
338
+ return databaseService.viewLogs(dataSource, databaseName, limit);
339
+ }
340
+ /**
341
+ * 备份数据库
342
+ */
343
+ async backupDatabase(connectionId, databaseName, options) {
344
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
345
+ const databaseService = this.getDatabaseService(dataSource.options.type);
346
+ return databaseService.backupDatabase(dataSource, databaseName, options);
347
+ }
348
+ /**
349
+ * 恢复数据库
350
+ */
351
+ async restoreDatabase(connectionId, databaseName, filePath, options) {
352
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
353
+ const databaseService = this.getDatabaseService(dataSource.options.type);
354
+ return databaseService.restoreDatabase(dataSource, databaseName, filePath, options);
355
+ }
356
+ /**
357
+ * 获取数据库统计信息
358
+ */
359
+ async getDatabaseStats(connectionId, databaseName) {
360
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
361
+ const databaseService = this.getDatabaseService(dataSource.options.type);
362
+ const tables = await databaseService.getTables(dataSource, databaseName);
363
+ const tableCount = tables.length;
364
+ const size = await databaseService.getDatabaseSize(dataSource, databaseName);
365
+ return {
366
+ tableCount,
367
+ size,
368
+ tables: tables.map(table => ({
369
+ name: table.name,
370
+ rowCount: table.rowCount || 0,
371
+ size: table.dataSize || 0
372
+ }))
373
+ };
374
+ }
375
+ /**
376
+ * 优化数据库
377
+ */
378
+ async optimizeDatabase(connectionId, databaseName) {
379
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
380
+ const databaseService = this.getDatabaseService(dataSource.options.type);
381
+ const tables = await databaseService.getTables(dataSource, databaseName);
382
+ const results = [];
383
+ for (const table of tables) {
384
+ try {
385
+ const result = await dataSource.query(`OPTIMIZE TABLE \`${table.name}\``);
386
+ results.push({ table: table.name, success: true, result });
387
+ }
388
+ catch (error) {
389
+ results.push({ table: table.name, success: false, error: error.message });
390
+ }
391
+ }
392
+ return { results };
393
+ }
394
+ /**
395
+ * 分析表
396
+ */
397
+ async analyzeTables(connectionId, databaseName) {
398
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
399
+ const databaseService = this.getDatabaseService(dataSource.options.type);
400
+ const tables = await databaseService.getTables(dataSource, databaseName);
401
+ const results = [];
402
+ for (const table of tables) {
403
+ try {
404
+ const result = await dataSource.query(`ANALYZE TABLE \`${table.name}\``);
405
+ results.push({ table: table.name, success: true, result });
406
+ }
407
+ catch (error) {
408
+ results.push({ table: table.name, success: false, error: error.message });
409
+ }
410
+ }
411
+ return { results };
412
+ }
413
+ /**
414
+ * 修复表
415
+ */
416
+ async repairTables(connectionId, databaseName) {
417
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
418
+ const databaseService = this.getDatabaseService(dataSource.options.type);
419
+ const tables = await databaseService.getTables(dataSource, databaseName);
420
+ const results = [];
421
+ for (const table of tables) {
422
+ try {
423
+ const result = await dataSource.query(`REPAIR TABLE \`${table.name}\``);
424
+ results.push({ table: table.name, success: true, result });
425
+ }
426
+ catch (error) {
427
+ results.push({ table: table.name, success: false, error: error.message });
428
+ }
429
+ }
430
+ return { results };
431
+ }
432
+ /**
433
+ * 导出表数据到 SQL 文件
434
+ */
435
+ async exportTableDataToSQL(connectionId, databaseName, tableName, options) {
436
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
437
+ const databaseService = this.getDatabaseService(dataSource.options.type);
438
+ return databaseService.exportTableDataToSQL(dataSource, databaseName, tableName, options);
439
+ }
440
+ /**
441
+ * 导出表数据到 CSV 文件
442
+ */
443
+ async exportTableDataToCSV(connectionId, databaseName, tableName, options) {
444
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
445
+ const databaseService = this.getDatabaseService(dataSource.options.type);
446
+ return databaseService.exportTableDataToCSV(dataSource, databaseName, tableName, options);
447
+ }
448
+ /**
449
+ * 导出表数据到 JSON 文件
450
+ */
451
+ async exportTableDataToJSON(connectionId, databaseName, tableName, options) {
452
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
453
+ const databaseService = this.getDatabaseService(dataSource.options.type);
454
+ return databaseService.exportTableDataToJSON(dataSource, databaseName, tableName, options);
455
+ }
456
+ /**
457
+ * 导出表数据到 Excel 文件
458
+ */
459
+ async exportTableDataToExcel(connectionId, databaseName, tableName, options) {
460
+ const dataSource = await this.connectionService.getActiveConnection(connectionId, databaseName);
461
+ const databaseService = this.getDatabaseService(dataSource.options.type);
462
+ return databaseService.exportTableDataToExcel(dataSource, databaseName, tableName, options);
463
+ }
464
+ /**
465
+ * 获取数据库类型特定的配置
466
+ */
467
+ getDatabaseTypeSpecificConfig(type) {
468
+ const service = this.getDatabaseService(type);
469
+ return {
470
+ type: service.getDatabaseType(),
471
+ features: this.getDatabaseFeatures(type)
472
+ };
473
+ }
474
+ /**
475
+ * 获取数据库特性
476
+ */
477
+ getDatabaseFeatures(type) {
478
+ switch (type.toLowerCase()) {
479
+ case 'mysql':
480
+ return {
481
+ supportSchemas: false,
482
+ supportProcedures: true,
483
+ supportTriggers: true,
484
+ supportViews: true,
485
+ supportFullTextSearch: true,
486
+ supportJson: true
487
+ };
488
+ case 'postgres':
489
+ case 'postgresql':
490
+ return {
491
+ supportSchemas: true,
492
+ supportProcedures: true,
493
+ supportTriggers: true,
494
+ supportViews: true,
495
+ supportFullTextSearch: true,
496
+ supportJson: true,
497
+ supportArrays: true,
498
+ supportEnum: true
499
+ };
500
+ case 'sqlite':
501
+ return {
502
+ supportSchemas: false,
503
+ supportProcedures: false,
504
+ supportTriggers: true,
505
+ supportViews: true,
506
+ supportFullTextSearch: true,
507
+ supportJson: false,
508
+ supportArrays: false
509
+ };
510
+ case 'oracle':
511
+ return {
512
+ supportSchemas: true,
513
+ supportProcedures: true,
514
+ supportTriggers: true,
515
+ supportViews: true,
516
+ supportFullTextSearch: true,
517
+ supportJson: false,
518
+ supportArrays: false,
519
+ supportSequences: true,
520
+ supportSynonyms: true
521
+ };
522
+ case 'mssql':
523
+ case 'sqlserver':
524
+ return {
525
+ supportSchemas: false,
526
+ supportProcedures: true,
527
+ supportTriggers: true,
528
+ supportViews: true,
529
+ supportFullTextSearch: true,
530
+ supportJson: true,
531
+ supportArrays: false,
532
+ supportStoredProcedures: true
533
+ };
534
+ case 'cockroachdb':
535
+ case 'cockroach':
536
+ return {
537
+ supportSchemas: true,
538
+ supportProcedures: true,
539
+ supportTriggers: true,
540
+ supportViews: true,
541
+ supportFullTextSearch: true,
542
+ supportJson: true,
543
+ supportArrays: true,
544
+ supportEnum: true,
545
+ supportDistributed: true
546
+ };
547
+ case 'mongodb':
548
+ case 'mongo':
549
+ return {
550
+ supportSchemas: false,
551
+ supportProcedures: false,
552
+ supportTriggers: false,
553
+ supportViews: false,
554
+ supportFullTextSearch: true,
555
+ supportJson: true,
556
+ supportArrays: true,
557
+ supportDocuments: true,
558
+ supportNoSQL: true
559
+ };
560
+ case 'sap':
561
+ case 'sap-hana':
562
+ case 'saphana':
563
+ return {
564
+ supportSchemas: true,
565
+ supportProcedures: true,
566
+ supportTriggers: true,
567
+ supportViews: true,
568
+ supportFullTextSearch: true,
569
+ supportJson: true,
570
+ supportArrays: false,
571
+ supportInMemory: true,
572
+ supportHighPerformance: true
573
+ };
574
+ default:
575
+ return {};
576
+ }
577
+ }
578
+ }
579
+ exports.DatabaseService = DatabaseService;
580
+ //# sourceMappingURL=database.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.service.js","sourceRoot":"","sources":["../../../../server/service/database/database.service.ts"],"names":[],"mappings":"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"}