fdb2 1.0.6 → 1.0.7

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 (192) hide show
  1. package/.vscodeignore +45 -0
  2. package/README.md +24 -85
  3. package/dist/package.json +115 -0
  4. package/dist/pnpm-lock.yaml +7447 -0
  5. package/dist/public/explorer.css +244 -111
  6. package/dist/public/explorer.js +518 -275
  7. package/dist/scripts/preinstall.js +112 -0
  8. package/dist/server/index.d.ts.map +1 -1
  9. package/dist/server/index.js +4 -9
  10. package/dist/server/index.js.map +1 -1
  11. package/dist/server/index.ts +5 -10
  12. package/dist/server/service/connection.service.d.ts.map +1 -1
  13. package/dist/server/service/connection.service.js +1 -0
  14. package/dist/server/service/connection.service.js.map +1 -1
  15. package/dist/server/service/connection.service.ts +1 -0
  16. package/dist/server/service/database/base.service.d.ts +4 -0
  17. package/dist/server/service/database/base.service.d.ts.map +1 -1
  18. package/dist/server/service/database/base.service.js +3 -3
  19. package/dist/server/service/database/base.service.js.map +1 -1
  20. package/dist/server/service/database/base.service.ts +8 -3
  21. package/dist/server/service/database/cockroachdb.service.d.ts +5 -0
  22. package/dist/server/service/database/cockroachdb.service.d.ts.map +1 -1
  23. package/dist/server/service/database/cockroachdb.service.js +112 -0
  24. package/dist/server/service/database/cockroachdb.service.js.map +1 -1
  25. package/dist/server/service/database/cockroachdb.service.ts +123 -0
  26. package/dist/server/service/database/database.service.d.ts +4 -0
  27. package/dist/server/service/database/database.service.d.ts.map +1 -1
  28. package/dist/server/service/database/database.service.js +8 -0
  29. package/dist/server/service/database/database.service.js.map +1 -1
  30. package/dist/server/service/database/database.service.ts +9 -0
  31. package/dist/server/service/database/mongodb.service.d.ts +6 -0
  32. package/dist/server/service/database/mongodb.service.d.ts.map +1 -1
  33. package/dist/server/service/database/mongodb.service.js +8 -0
  34. package/dist/server/service/database/mongodb.service.js.map +1 -1
  35. package/dist/server/service/database/mongodb.service.ts +9 -0
  36. package/dist/server/service/database/mssql.service.d.ts +4 -0
  37. package/dist/server/service/database/mssql.service.d.ts.map +1 -1
  38. package/dist/server/service/database/mssql.service.js +105 -0
  39. package/dist/server/service/database/mssql.service.js.map +1 -1
  40. package/dist/server/service/database/mssql.service.ts +118 -0
  41. package/dist/server/service/database/mysql.service.d.ts +4 -0
  42. package/dist/server/service/database/mysql.service.d.ts.map +1 -1
  43. package/dist/server/service/database/mysql.service.js +116 -0
  44. package/dist/server/service/database/mysql.service.js.map +1 -1
  45. package/dist/server/service/database/mysql.service.ts +130 -0
  46. package/dist/server/service/database/oracle.service.d.ts +4 -0
  47. package/dist/server/service/database/oracle.service.d.ts.map +1 -1
  48. package/dist/server/service/database/oracle.service.js +114 -0
  49. package/dist/server/service/database/oracle.service.js.map +1 -1
  50. package/dist/server/service/database/oracle.service.ts +128 -0
  51. package/dist/server/service/database/postgres.service.d.ts +4 -0
  52. package/dist/server/service/database/postgres.service.d.ts.map +1 -1
  53. package/dist/server/service/database/postgres.service.js +120 -0
  54. package/dist/server/service/database/postgres.service.js.map +1 -1
  55. package/dist/server/service/database/postgres.service.ts +131 -0
  56. package/dist/server/service/database/sap.service.d.ts +4 -0
  57. package/dist/server/service/database/sap.service.d.ts.map +1 -1
  58. package/dist/server/service/database/sap.service.js +107 -0
  59. package/dist/server/service/database/sap.service.js.map +1 -1
  60. package/dist/server/service/database/sap.service.ts +120 -0
  61. package/dist/server/service/database/sqlite.service.d.ts +5 -0
  62. package/dist/server/service/database/sqlite.service.d.ts.map +1 -1
  63. package/dist/server/service/database/sqlite.service.js +133 -0
  64. package/dist/server/service/database/sqlite.service.js.map +1 -1
  65. package/dist/server/service/database/sqlite.service.ts +150 -0
  66. package/package.json +18 -9
  67. package/packages/vscode/.vscodeignore +44 -0
  68. package/packages/vscode/README.md +62 -0
  69. package/packages/vscode/out/database-services/base.service.js +236 -0
  70. package/packages/vscode/out/database-services/base.service.js.map +1 -0
  71. package/packages/vscode/out/database-services/cockroachdb.service.js +634 -0
  72. package/packages/vscode/out/database-services/cockroachdb.service.js.map +1 -0
  73. package/packages/vscode/out/database-services/connection.service.js +346 -0
  74. package/packages/vscode/out/database-services/connection.service.js.map +1 -0
  75. package/packages/vscode/out/database-services/database.service.js +571 -0
  76. package/packages/vscode/out/database-services/database.service.js.map +1 -0
  77. package/packages/vscode/out/database-services/index.js +18 -0
  78. package/packages/vscode/out/database-services/index.js.map +1 -0
  79. package/packages/vscode/out/database-services/model/connection.entity.js +11 -0
  80. package/packages/vscode/out/database-services/model/connection.entity.js.map +1 -0
  81. package/packages/vscode/out/database-services/model/database.entity.js +35 -0
  82. package/packages/vscode/out/database-services/model/database.entity.js.map +1 -0
  83. package/packages/vscode/out/database-services/mongodb.service.js +458 -0
  84. package/packages/vscode/out/database-services/mongodb.service.js.map +1 -0
  85. package/packages/vscode/out/database-services/mssql.service.js +694 -0
  86. package/packages/vscode/out/database-services/mssql.service.js.map +1 -0
  87. package/packages/vscode/out/database-services/mysql.service.js +735 -0
  88. package/packages/vscode/out/database-services/mysql.service.js.map +1 -0
  89. package/packages/vscode/out/database-services/oracle.service.js +787 -0
  90. package/packages/vscode/out/database-services/oracle.service.js.map +1 -0
  91. package/packages/vscode/out/database-services/postgres.service.js +696 -0
  92. package/packages/vscode/out/database-services/postgres.service.js.map +1 -0
  93. package/packages/vscode/out/database-services/sap.service.js +695 -0
  94. package/packages/vscode/out/database-services/sap.service.js.map +1 -0
  95. package/packages/vscode/out/database-services/sqlite.service.js +532 -0
  96. package/packages/vscode/out/database-services/sqlite.service.js.map +1 -0
  97. package/packages/vscode/out/extension.js +93 -0
  98. package/packages/vscode/out/extension.js.map +1 -0
  99. package/packages/vscode/out/provider/DatabaseTreeProvider.js +159 -0
  100. package/packages/vscode/out/provider/DatabaseTreeProvider.js.map +1 -0
  101. package/packages/vscode/out/provider/WebViewProvider.js +259 -0
  102. package/packages/vscode/out/provider/WebViewProvider.js.map +1 -0
  103. package/packages/vscode/out/service/ConnectionManager.js +105 -0
  104. package/packages/vscode/out/service/ConnectionManager.js.map +1 -0
  105. package/packages/vscode/out/service/DatabaseServiceBridge.js +395 -0
  106. package/packages/vscode/out/service/DatabaseServiceBridge.js.map +1 -0
  107. package/packages/vscode/out/typings/connection.js +3 -0
  108. package/packages/vscode/out/typings/connection.js.map +1 -0
  109. package/packages/vscode/package.json +142 -0
  110. package/packages/vscode/resources/icon.svg +5 -0
  111. package/packages/vscode/resources/webview/_plugin-vue_export-helper.js +6529 -0
  112. package/packages/vscode/resources/webview/_plugin-vue_export-helper.js.map +1 -0
  113. package/packages/vscode/resources/webview/connection.css +69 -0
  114. package/packages/vscode/resources/webview/connection.js +228 -0
  115. package/packages/vscode/resources/webview/connection.js.map +1 -0
  116. package/packages/vscode/resources/webview/database.css +259 -0
  117. package/packages/vscode/resources/webview/database.js +275 -0
  118. package/packages/vscode/resources/webview/database.js.map +1 -0
  119. package/packages/vscode/resources/webview/favicon.ico +0 -0
  120. package/packages/vscode/resources/webview/index.html +9 -0
  121. package/packages/vscode/resources/webview/modules/header.tpl +14 -0
  122. package/packages/vscode/resources/webview/modules/initial_state.tpl +55 -0
  123. package/packages/vscode/resources/webview/query.css +162 -0
  124. package/packages/vscode/resources/webview/query.js +198 -0
  125. package/packages/vscode/resources/webview/query.js.map +1 -0
  126. package/packages/vscode/src/database-services/base.service.js.map +1 -0
  127. package/packages/vscode/src/database-services/base.service.ts +363 -0
  128. package/packages/vscode/src/database-services/cockroachdb.service.js.map +1 -0
  129. package/packages/vscode/src/database-services/cockroachdb.service.ts +659 -0
  130. package/packages/vscode/src/database-services/connection.service.ts +341 -0
  131. package/packages/vscode/src/database-services/database.service.ts +630 -0
  132. package/packages/vscode/src/database-services/index.ts +7 -0
  133. package/packages/vscode/src/database-services/model/connection.entity.js +11 -0
  134. package/packages/vscode/src/database-services/model/connection.entity.js.map +1 -0
  135. package/packages/vscode/src/database-services/model/connection.entity.ts +66 -0
  136. package/packages/vscode/src/database-services/model/database.entity.js +35 -0
  137. package/packages/vscode/src/database-services/model/database.entity.js.map +1 -0
  138. package/packages/vscode/src/database-services/model/database.entity.ts +246 -0
  139. package/packages/vscode/src/database-services/mongodb.service.js.map +1 -0
  140. package/packages/vscode/src/database-services/mongodb.service.ts +454 -0
  141. package/packages/vscode/src/database-services/mssql.service.js.map +1 -0
  142. package/packages/vscode/src/database-services/mssql.service.ts +723 -0
  143. package/packages/vscode/src/database-services/mysql.service.js.map +1 -0
  144. package/packages/vscode/src/database-services/mysql.service.ts +761 -0
  145. package/packages/vscode/src/database-services/oracle.service.js.map +1 -0
  146. package/packages/vscode/src/database-services/oracle.service.ts +832 -0
  147. package/packages/vscode/src/database-services/postgres.service.js.map +1 -0
  148. package/packages/vscode/src/database-services/postgres.service.ts +741 -0
  149. package/packages/vscode/src/database-services/sap.service.js.map +1 -0
  150. package/packages/vscode/src/database-services/sap.service.ts +713 -0
  151. package/packages/vscode/src/database-services/sqlite.service.js.map +1 -0
  152. package/packages/vscode/src/database-services/sqlite.service.ts +559 -0
  153. package/packages/vscode/src/extension.ts +76 -0
  154. package/packages/vscode/src/provider/DatabaseTreeProvider.ts +167 -0
  155. package/packages/vscode/src/provider/WebViewProvider.ts +277 -0
  156. package/packages/vscode/src/service/DatabaseServiceBridge.ts +414 -0
  157. package/packages/vscode/src/typings/connection.ts +90 -0
  158. package/packages/vscode/tsconfig.json +21 -0
  159. package/public/fdb2.png +0 -0
  160. package/server/backups/db_ai_breakout_2026-03-11T08-38-48-677Z.sql +0 -0
  161. package/server/index.ts +5 -10
  162. package/server/model/connection.entity.js +11 -0
  163. package/server/model/connection.entity.js.map +1 -0
  164. package/server/model/database.entity.js +35 -0
  165. package/server/model/database.entity.js.map +1 -0
  166. package/server/service/connection.service.ts +1 -0
  167. package/server/service/database/base.service.ts +8 -3
  168. package/server/service/database/cockroachdb.service.ts +123 -0
  169. package/server/service/database/database.service.ts +9 -0
  170. package/server/service/database/mongodb.service.ts +9 -0
  171. package/server/service/database/mssql.service.ts +118 -0
  172. package/server/service/database/mysql.service.ts +130 -0
  173. package/server/service/database/oracle.service.ts +128 -0
  174. package/server/service/database/postgres.service.ts +131 -0
  175. package/server/service/database/sap.service.ts +120 -0
  176. package/server/service/database/sqlite.service.ts +150 -0
  177. package/server/tsconfig.json +20 -0
  178. package/src/components/connection-editor/index.vue +0 -1
  179. package/src/platform/database/components/db-tools.vue +414 -174
  180. package/src/platform/database/components/table-detail.vue +1 -0
  181. package/src/platform/database/components/table-editor.vue +245 -18
  182. package/src/platform/vscode/bridge.ts +121 -0
  183. package/src/platform/vscode/components/ConnectionPanel.vue +272 -0
  184. package/src/platform/vscode/components/DatabasePanel.vue +532 -0
  185. package/src/platform/vscode/components/QueryPanel.vue +371 -0
  186. package/src/platform/vscode/entry/connection.ts +13 -0
  187. package/src/platform/vscode/entry/database.ts +13 -0
  188. package/src/platform/vscode/entry/query.ts +13 -0
  189. package/src/platform/vscode/index.ts +5 -0
  190. package/src/service/database.ts +2 -6
  191. package/vite.config.ts +46 -6
  192. package/vite.config.vscode.ts +47 -0
@@ -710,4 +710,124 @@ export class SAPHANADatabaseService extends BaseDatabaseService {
710
710
  public quoteIdentifier(identifier: string): string {
711
711
  return `"${identifier}"`;
712
712
  }
713
+
714
+ /**
715
+ * 修改表结构
716
+ */
717
+ async alterTable(dataSource: DataSource, databaseName: string, tableDiff: any): Promise<any> {
718
+ try {
719
+ const tableName = tableDiff.tableName;
720
+ const sqlStatements: string[] = [];
721
+
722
+ // 修改表注释
723
+ if (tableDiff.tableCommentChanged) {
724
+ sqlStatements.push(`ALTER TABLE "${tableName}" COMMENT '${tableDiff.tableComment}'`);
725
+ }
726
+
727
+ // 添加新列
728
+ tableDiff.addedColumns.forEach((column: any) => {
729
+ // 检查type是否已经包含长度信息(括号)
730
+ const typeHasLength = /\(\d+\)/.test(column.type);
731
+
732
+ let columnSQL = `ALTER TABLE "${tableName}" ADD ("${column.name}" ${column.type}`;
733
+
734
+ // 处理长度和精度(仅当type中没有指定长度时才添加)
735
+ if (!typeHasLength) {
736
+ if (column.length) {
737
+ columnSQL += `(${column.length})`;
738
+ } else if (column.precision) {
739
+ if (column.scale) {
740
+ columnSQL += `(${column.precision},${column.scale})`;
741
+ } else {
742
+ columnSQL += `(${column.precision})`;
743
+ }
744
+ }
745
+ }
746
+
747
+ // 处理NULL约束
748
+ if (!column.nullable) {
749
+ columnSQL += ' NOT NULL';
750
+ }
751
+
752
+ // 处理默认值
753
+ if (column.defaultValue) {
754
+ const upperDefault = column.defaultValue.toString().toUpperCase();
755
+ if (['CURRENT_TIMESTAMP', 'CURRENT_DATE', 'CURRENT_TIME'].includes(upperDefault)) {
756
+ columnSQL += ` DEFAULT ${upperDefault}`;
757
+ } else {
758
+ columnSQL += ` DEFAULT '${column.defaultValue}'`;
759
+ }
760
+ }
761
+
762
+ columnSQL += ')';
763
+ sqlStatements.push(columnSQL + ';');
764
+
765
+ // 添加列注释
766
+ if (column.comment) {
767
+ sqlStatements.push(`ALTER TABLE "${tableName}" ("${column.name}" COMMENT '${column.comment}')`);
768
+ }
769
+ });
770
+
771
+ // 修改列
772
+ tableDiff.modifiedColumns.forEach((modification: any) => {
773
+ const { oldColumn, newColumn } = modification;
774
+
775
+ // 检查type是否已经包含长度信息(括号)
776
+ const typeHasLength = /\(\d+\)/.test(newColumn.type);
777
+
778
+ let columnSQL = `ALTER TABLE "${tableName}" ("${newColumn.name}" ${newColumn.type}`;
779
+
780
+ // 处理长度和精度(仅当type中没有指定长度时才添加)
781
+ if (!typeHasLength) {
782
+ if (newColumn.length) {
783
+ columnSQL += `(${newColumn.length})`;
784
+ } else if (newColumn.precision) {
785
+ if (newColumn.scale) {
786
+ columnSQL += `(${newColumn.precision},${newColumn.scale})`;
787
+ } else {
788
+ columnSQL += `(${newColumn.precision})`;
789
+ }
790
+ }
791
+ }
792
+
793
+ // 处理NULL约束
794
+ if (!newColumn.nullable) {
795
+ columnSQL += ' NOT NULL';
796
+ }
797
+
798
+ // 处理默认值
799
+ if (newColumn.defaultValue) {
800
+ const upperDefault = newColumn.defaultValue.toString().toUpperCase();
801
+ if (['CURRENT_TIMESTAMP', 'CURRENT_DATE', 'CURRENT_TIME'].includes(upperDefault)) {
802
+ columnSQL += ` DEFAULT ${upperDefault}`;
803
+ } else {
804
+ columnSQL += ` DEFAULT '${newColumn.defaultValue}'`;
805
+ }
806
+ }
807
+
808
+ columnSQL += ')';
809
+ sqlStatements.push(columnSQL + ';');
810
+
811
+ // 修改列注释
812
+ if (newColumn.comment) {
813
+ sqlStatements.push(`ALTER TABLE "${tableName}" ("${newColumn.name}" COMMENT '${newColumn.comment}')`);
814
+ }
815
+ });
816
+
817
+ // 删除列
818
+ tableDiff.deletedColumns.forEach((column: any) => {
819
+ sqlStatements.push(`ALTER TABLE "${tableName}" DROP ("${column.name}")`);
820
+ });
821
+
822
+ // 执行SQL语句
823
+ if (sqlStatements.length > 0) {
824
+ await this.executeBatchQuery(dataSource, sqlStatements, { useTransaction: true });
825
+ }
826
+
827
+ return { ret: 0, message: '表结构修改成功' };
828
+ } catch (error) {
829
+ console.error('SAP HANA修改表结构失败:', error);
830
+ return { ret: 1, message: `修改表结构失败: ${error instanceof Error ? error.message : String(error)}` };
831
+ }
832
+ }
713
833
  }
@@ -556,4 +556,154 @@ export class SQLiteService extends BaseDatabaseService {
556
556
  throw new Error(`导出表数据到Excel失败: ${error.message}`);
557
557
  }
558
558
  }
559
+
560
+ /**
561
+ * 修改表结构
562
+ * SQLite的ALTER TABLE操作非常有限,需要通过重建表来实现复杂的表结构修改
563
+ */
564
+ async alterTable(dataSource: DataSource, databaseName: string, tableDiff: any): Promise<any> {
565
+ try {
566
+ const tableName = tableDiff.tableName;
567
+ const sqlStatements: string[] = [];
568
+
569
+ // SQLite不支持直接修改表注释,只能忽略
570
+
571
+ // 如果有修改或删除列,需要重建表
572
+ if (tableDiff.modifiedColumns.length > 0 || tableDiff.deletedColumns.length > 0) {
573
+ const tempTableName = `_temp_${tableName}_${Date.now()}`;
574
+
575
+ // 获取所有列(包括新增的和未修改的)
576
+ const allColumns = [...tableDiff.addedColumns];
577
+ const existingColumns = await this.getColumns(dataSource, databaseName, tableName);
578
+
579
+ // 添加未修改的现有列
580
+ existingColumns.forEach(col => {
581
+ const isDeleted = tableDiff.deletedColumns.some((dc: any) => dc.name === col.name);
582
+ const isModified = tableDiff.modifiedColumns.some((mc: any) => mc.oldColumn.name === col.name);
583
+ if (!isDeleted && !isModified) {
584
+ allColumns.push(col);
585
+ }
586
+ });
587
+
588
+ // 添加修改后的列
589
+ tableDiff.modifiedColumns.forEach((modification: any) => {
590
+ allColumns.push(modification.newColumn);
591
+ });
592
+
593
+ // 创建临时表
594
+ let createTableSQL = `CREATE TABLE "${tempTableName}" (`;
595
+ const columnDefinitions: string[] = [];
596
+
597
+ allColumns.forEach(column => {
598
+ // 检查type是否已经包含长度信息(括号)
599
+ const typeHasLength = /\(\d+\)/.test(column.type);
600
+
601
+ let definition = `"${column.name}" ${column.type}`;
602
+
603
+ // 处理长度和精度(仅当type中没有指定长度时才添加)
604
+ if (!typeHasLength) {
605
+ if (column.length) {
606
+ definition += `(${column.length})`;
607
+ } else if (column.precision) {
608
+ if (column.scale) {
609
+ definition += `(${column.precision},${column.scale})`;
610
+ } else {
611
+ definition += `(${column.precision})`;
612
+ }
613
+ }
614
+ }
615
+
616
+ // 处理NULL约束
617
+ if (!column.nullable) {
618
+ definition += ' NOT NULL';
619
+ }
620
+
621
+ // 处理默认值
622
+ if (column.defaultValue) {
623
+ const upperDefault = column.defaultValue.toString().toUpperCase();
624
+ if (['CURRENT_TIMESTAMP', 'NOW()', 'CURRENT_DATE', 'CURRENT_TIME'].includes(upperDefault)) {
625
+ definition += ` DEFAULT ${upperDefault}`;
626
+ } else {
627
+ definition += ` DEFAULT '${column.defaultValue}'`;
628
+ }
629
+ }
630
+
631
+ // 处理主键和自增
632
+ if (column.isPrimary) {
633
+ if (column.isAutoIncrement) {
634
+ definition += ' PRIMARY KEY AUTOINCREMENT';
635
+ } else {
636
+ definition += ' PRIMARY KEY';
637
+ }
638
+ }
639
+
640
+ columnDefinitions.push(definition);
641
+ });
642
+
643
+ createTableSQL += columnDefinitions.join(',\n');
644
+ createTableSQL += ')';
645
+ sqlStatements.push(createTableSQL + ';');
646
+
647
+ // 复制数据到临时表
648
+ const existingColumnNames = existingColumns.map(col => `"${col.name}"`).join(', ');
649
+ const newColumnNames = allColumns.map(col => `"${col.name}"`).join(', ');
650
+ sqlStatements.push(`INSERT INTO "${tempTableName}" (${newColumnNames}) SELECT ${existingColumnNames} FROM "${tableName}";`);
651
+
652
+ // 删除旧表
653
+ sqlStatements.push(`DROP TABLE "${tableName}";`);
654
+
655
+ // 重命名临时表
656
+ sqlStatements.push(`ALTER TABLE "${tempTableName}" RENAME TO "${tableName}";`);
657
+
658
+ } else if (tableDiff.addedColumns.length > 0) {
659
+ // 只有添加列,可以直接使用ALTER TABLE ADD COLUMN
660
+ tableDiff.addedColumns.forEach((column: any) => {
661
+ // 检查type是否已经包含长度信息(括号)
662
+ const typeHasLength = /\(\d+\)/.test(column.type);
663
+
664
+ let columnSQL = `ALTER TABLE "${tableName}" ADD COLUMN "${column.name}" ${column.type}`;
665
+
666
+ // 处理长度和精度(仅当type中没有指定长度时才添加)
667
+ if (!typeHasLength) {
668
+ if (column.length) {
669
+ columnSQL += `(${column.length})`;
670
+ } else if (column.precision) {
671
+ if (column.scale) {
672
+ columnSQL += `(${column.precision},${column.scale})`;
673
+ } else {
674
+ columnSQL += `(${column.precision})`;
675
+ }
676
+ }
677
+ }
678
+
679
+ // 处理NULL约束
680
+ if (!column.nullable) {
681
+ columnSQL += ' NOT NULL';
682
+ }
683
+
684
+ // 处理默认值
685
+ if (column.defaultValue) {
686
+ const upperDefault = column.defaultValue.toString().toUpperCase();
687
+ if (['CURRENT_TIMESTAMP', 'NOW()', 'CURRENT_DATE', 'CURRENT_TIME'].includes(upperDefault)) {
688
+ columnSQL += ` DEFAULT ${upperDefault}`;
689
+ } else {
690
+ columnSQL += ` DEFAULT '${column.defaultValue}'`;
691
+ }
692
+ }
693
+
694
+ sqlStatements.push(columnSQL + ';');
695
+ });
696
+ }
697
+
698
+ // 执行SQL语句
699
+ if (sqlStatements.length > 0) {
700
+ await this.executeBatchQuery(dataSource, sqlStatements, { useTransaction: true });
701
+ }
702
+
703
+ return { ret: 0, message: '表结构修改成功' };
704
+ } catch (error) {
705
+ console.error('SQLite修改表结构失败:', error);
706
+ return { ret: 1, message: `修改表结构失败: ${error instanceof Error ? error.message : String(error)}` };
707
+ }
708
+ }
559
709
  }
@@ -0,0 +1,20 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "CommonJS",
5
+ "moduleResolution": "Node",
6
+ "outDir": "./dist/server",
7
+ "rootDir": "./",
8
+ "strict": false,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "declaration": true,
13
+ "declarationMap": true,
14
+ "sourceMap": true,
15
+ "noEmit": false,
16
+ "resolveJsonModule": true
17
+ },
18
+ "include": ["**/*"],
19
+ "exclude": ["**/__tests__/*", "**/*.spec.ts", "node_modules", "dist"]
20
+ }
@@ -317,7 +317,6 @@ function showEditModal(connection: ConnectionEntity) {
317
317
  // 保存连接配置(不测试连接)
318
318
  async function saveConnection(closeModal = true) {
319
319
  try {
320
- debugger
321
320
  // 先进行前端验证
322
321
  const validation = validateConnection(connectionForm.value);
323
322
  if (!validation.isValid) {