fdb2 1.0.12 → 1.0.14

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 (313) hide show
  1. package/README.md +9 -2
  2. package/bin/docker/.env +4 -0
  3. package/package.json +19 -9
  4. package/public/favicon.ico +0 -0
  5. package/public/favicon.png +0 -0
  6. package/view/modules/header.tpl +1 -1
  7. package/.dockerignore +0 -21
  8. package/.editorconfig +0 -11
  9. package/.eslintrc.cjs +0 -14
  10. package/.eslintrc.json +0 -7
  11. package/.prettierrc.js +0 -3
  12. package/.tpl.env +0 -22
  13. package/.vscodeignore +0 -45
  14. package/dist/package.json +0 -115
  15. package/dist/pnpm-lock.yaml +0 -8135
  16. package/dist/public/.vite/manifest.json +0 -82
  17. package/dist/public/bootstrap-icons.woff +0 -0
  18. package/dist/public/bootstrap-icons.woff2 +0 -0
  19. package/dist/public/bootstrap.css +0 -14152
  20. package/dist/public/bootstrap.js +0 -5038
  21. package/dist/public/explorer.css +0 -2379
  22. package/dist/public/explorer.js +0 -50586
  23. package/dist/public/index.css +0 -1099
  24. package/dist/public/index.js +0 -12862
  25. package/dist/public/layout.css +0 -318
  26. package/dist/public/layout.js +0 -25
  27. package/dist/public/vue.css +0 -1
  28. package/dist/public/vue.js +0 -9110
  29. package/dist/scripts/preinstall.js +0 -112
  30. package/dist/server/index.d.ts +0 -2
  31. package/dist/server/index.d.ts.map +0 -1
  32. package/dist/server/index.js +0 -601
  33. package/dist/server/index.js.map +0 -1
  34. package/dist/server/index.ts +0 -681
  35. package/dist/server/model/connection.entity.d.ts +0 -55
  36. package/dist/server/model/connection.entity.d.ts.map +0 -1
  37. package/dist/server/model/connection.entity.js +0 -59
  38. package/dist/server/model/connection.entity.js.map +0 -1
  39. package/dist/server/model/connection.entity.ts +0 -66
  40. package/dist/server/model/database.entity.d.ts +0 -203
  41. package/dist/server/model/database.entity.d.ts.map +0 -1
  42. package/dist/server/model/database.entity.js +0 -211
  43. package/dist/server/model/database.entity.js.map +0 -1
  44. package/dist/server/model/database.entity.ts +0 -246
  45. package/dist/server/service/connection.service.d.ts +0 -84
  46. package/dist/server/service/connection.service.d.ts.map +0 -1
  47. package/dist/server/service/connection.service.js +0 -369
  48. package/dist/server/service/connection.service.js.map +0 -1
  49. package/dist/server/service/connection.service.ts +0 -359
  50. package/dist/server/service/database/base.service.d.ts +0 -183
  51. package/dist/server/service/database/base.service.d.ts.map +0 -1
  52. package/dist/server/service/database/base.service.js +0 -253
  53. package/dist/server/service/database/base.service.js.map +0 -1
  54. package/dist/server/service/database/base.service.ts +0 -407
  55. package/dist/server/service/database/cockroachdb.service.d.ts +0 -116
  56. package/dist/server/service/database/cockroachdb.service.d.ts.map +0 -1
  57. package/dist/server/service/database/cockroachdb.service.js +0 -812
  58. package/dist/server/service/database/cockroachdb.service.js.map +0 -1
  59. package/dist/server/service/database/cockroachdb.service.ts +0 -871
  60. package/dist/server/service/database/database.service.d.ts +0 -495
  61. package/dist/server/service/database/database.service.d.ts.map +0 -1
  62. package/dist/server/service/database/database.service.js +0 -711
  63. package/dist/server/service/database/database.service.js.map +0 -1
  64. package/dist/server/service/database/database.service.ts +0 -776
  65. package/dist/server/service/database/index.d.ts +0 -8
  66. package/dist/server/service/database/index.d.ts.map +0 -1
  67. package/dist/server/service/database/index.js +0 -18
  68. package/dist/server/service/database/index.js.map +0 -1
  69. package/dist/server/service/database/index.ts +0 -7
  70. package/dist/server/service/database/mongodb.service.d.ts +0 -121
  71. package/dist/server/service/database/mongodb.service.d.ts.map +0 -1
  72. package/dist/server/service/database/mongodb.service.js +0 -502
  73. package/dist/server/service/database/mongodb.service.js.map +0 -1
  74. package/dist/server/service/database/mongodb.service.ts +0 -501
  75. package/dist/server/service/database/mssql.service.d.ts +0 -118
  76. package/dist/server/service/database/mssql.service.d.ts.map +0 -1
  77. package/dist/server/service/database/mssql.service.js +0 -871
  78. package/dist/server/service/database/mssql.service.js.map +0 -1
  79. package/dist/server/service/database/mssql.service.ts +0 -932
  80. package/dist/server/service/database/mysql.service.d.ts +0 -114
  81. package/dist/server/service/database/mysql.service.d.ts.map +0 -1
  82. package/dist/server/service/database/mysql.service.js +0 -960
  83. package/dist/server/service/database/mysql.service.js.map +0 -1
  84. package/dist/server/service/database/mysql.service.ts +0 -1026
  85. package/dist/server/service/database/oracle.service.d.ts +0 -126
  86. package/dist/server/service/database/oracle.service.d.ts.map +0 -1
  87. package/dist/server/service/database/oracle.service.js +0 -963
  88. package/dist/server/service/database/oracle.service.js.map +0 -1
  89. package/dist/server/service/database/oracle.service.ts +0 -1036
  90. package/dist/server/service/database/postgres.service.d.ts +0 -122
  91. package/dist/server/service/database/postgres.service.d.ts.map +0 -1
  92. package/dist/server/service/database/postgres.service.js +0 -882
  93. package/dist/server/service/database/postgres.service.js.map +0 -1
  94. package/dist/server/service/database/postgres.service.ts +0 -961
  95. package/dist/server/service/database/sap.service.d.ts +0 -115
  96. package/dist/server/service/database/sap.service.d.ts.map +0 -1
  97. package/dist/server/service/database/sap.service.js +0 -868
  98. package/dist/server/service/database/sap.service.js.map +0 -1
  99. package/dist/server/service/database/sap.service.ts +0 -922
  100. package/dist/server/service/database/sqlite.service.d.ts +0 -113
  101. package/dist/server/service/database/sqlite.service.d.ts.map +0 -1
  102. package/dist/server/service/database/sqlite.service.js +0 -724
  103. package/dist/server/service/database/sqlite.service.js.map +0 -1
  104. package/dist/server/service/database/sqlite.service.ts +0 -788
  105. package/dist/server/service/session.service.ts +0 -158
  106. package/dist/view/index.html +0 -45
  107. package/env.d.ts +0 -1
  108. package/packages/vscode/.vscodeignore +0 -44
  109. package/packages/vscode/README.md +0 -62
  110. package/packages/vscode/out/database-services/base.service.js +0 -236
  111. package/packages/vscode/out/database-services/base.service.js.map +0 -1
  112. package/packages/vscode/out/database-services/cockroachdb.service.js +0 -634
  113. package/packages/vscode/out/database-services/cockroachdb.service.js.map +0 -1
  114. package/packages/vscode/out/database-services/connection.service.js +0 -346
  115. package/packages/vscode/out/database-services/connection.service.js.map +0 -1
  116. package/packages/vscode/out/database-services/database.service.js +0 -571
  117. package/packages/vscode/out/database-services/database.service.js.map +0 -1
  118. package/packages/vscode/out/database-services/index.js +0 -18
  119. package/packages/vscode/out/database-services/index.js.map +0 -1
  120. package/packages/vscode/out/database-services/model/connection.entity.js +0 -11
  121. package/packages/vscode/out/database-services/model/connection.entity.js.map +0 -1
  122. package/packages/vscode/out/database-services/model/database.entity.js +0 -35
  123. package/packages/vscode/out/database-services/model/database.entity.js.map +0 -1
  124. package/packages/vscode/out/database-services/mongodb.service.js +0 -458
  125. package/packages/vscode/out/database-services/mongodb.service.js.map +0 -1
  126. package/packages/vscode/out/database-services/mssql.service.js +0 -694
  127. package/packages/vscode/out/database-services/mssql.service.js.map +0 -1
  128. package/packages/vscode/out/database-services/mysql.service.js +0 -735
  129. package/packages/vscode/out/database-services/mysql.service.js.map +0 -1
  130. package/packages/vscode/out/database-services/oracle.service.js +0 -787
  131. package/packages/vscode/out/database-services/oracle.service.js.map +0 -1
  132. package/packages/vscode/out/database-services/postgres.service.js +0 -696
  133. package/packages/vscode/out/database-services/postgres.service.js.map +0 -1
  134. package/packages/vscode/out/database-services/sap.service.js +0 -695
  135. package/packages/vscode/out/database-services/sap.service.js.map +0 -1
  136. package/packages/vscode/out/database-services/sqlite.service.js +0 -532
  137. package/packages/vscode/out/database-services/sqlite.service.js.map +0 -1
  138. package/packages/vscode/out/extension.js +0 -93
  139. package/packages/vscode/out/extension.js.map +0 -1
  140. package/packages/vscode/out/provider/DatabaseTreeProvider.js +0 -159
  141. package/packages/vscode/out/provider/DatabaseTreeProvider.js.map +0 -1
  142. package/packages/vscode/out/provider/WebViewProvider.js +0 -259
  143. package/packages/vscode/out/provider/WebViewProvider.js.map +0 -1
  144. package/packages/vscode/out/service/ConnectionManager.js +0 -105
  145. package/packages/vscode/out/service/ConnectionManager.js.map +0 -1
  146. package/packages/vscode/out/service/DatabaseServiceBridge.js +0 -395
  147. package/packages/vscode/out/service/DatabaseServiceBridge.js.map +0 -1
  148. package/packages/vscode/out/typings/connection.js +0 -3
  149. package/packages/vscode/out/typings/connection.js.map +0 -1
  150. package/packages/vscode/package.json +0 -142
  151. package/packages/vscode/resources/icon.svg +0 -5
  152. package/packages/vscode/resources/webview/_plugin-vue_export-helper.js +0 -6529
  153. package/packages/vscode/resources/webview/_plugin-vue_export-helper.js.map +0 -1
  154. package/packages/vscode/resources/webview/connection.css +0 -69
  155. package/packages/vscode/resources/webview/connection.js +0 -228
  156. package/packages/vscode/resources/webview/connection.js.map +0 -1
  157. package/packages/vscode/resources/webview/database.css +0 -259
  158. package/packages/vscode/resources/webview/database.js +0 -275
  159. package/packages/vscode/resources/webview/database.js.map +0 -1
  160. package/packages/vscode/resources/webview/favicon.ico +0 -0
  161. package/packages/vscode/resources/webview/index.html +0 -9
  162. package/packages/vscode/resources/webview/modules/header.tpl +0 -14
  163. package/packages/vscode/resources/webview/modules/initial_state.tpl +0 -55
  164. package/packages/vscode/resources/webview/query.css +0 -162
  165. package/packages/vscode/resources/webview/query.js +0 -198
  166. package/packages/vscode/resources/webview/query.js.map +0 -1
  167. package/packages/vscode/src/database-services/base.service.js.map +0 -1
  168. package/packages/vscode/src/database-services/base.service.ts +0 -363
  169. package/packages/vscode/src/database-services/cockroachdb.service.js.map +0 -1
  170. package/packages/vscode/src/database-services/cockroachdb.service.ts +0 -659
  171. package/packages/vscode/src/database-services/connection.service.ts +0 -341
  172. package/packages/vscode/src/database-services/database.service.ts +0 -630
  173. package/packages/vscode/src/database-services/index.ts +0 -7
  174. package/packages/vscode/src/database-services/model/connection.entity.js +0 -11
  175. package/packages/vscode/src/database-services/model/connection.entity.js.map +0 -1
  176. package/packages/vscode/src/database-services/model/connection.entity.ts +0 -66
  177. package/packages/vscode/src/database-services/model/database.entity.js +0 -35
  178. package/packages/vscode/src/database-services/model/database.entity.js.map +0 -1
  179. package/packages/vscode/src/database-services/model/database.entity.ts +0 -246
  180. package/packages/vscode/src/database-services/mongodb.service.js.map +0 -1
  181. package/packages/vscode/src/database-services/mongodb.service.ts +0 -454
  182. package/packages/vscode/src/database-services/mssql.service.js.map +0 -1
  183. package/packages/vscode/src/database-services/mssql.service.ts +0 -723
  184. package/packages/vscode/src/database-services/mysql.service.js.map +0 -1
  185. package/packages/vscode/src/database-services/mysql.service.ts +0 -761
  186. package/packages/vscode/src/database-services/oracle.service.js.map +0 -1
  187. package/packages/vscode/src/database-services/oracle.service.ts +0 -832
  188. package/packages/vscode/src/database-services/postgres.service.js.map +0 -1
  189. package/packages/vscode/src/database-services/postgres.service.ts +0 -741
  190. package/packages/vscode/src/database-services/sap.service.js.map +0 -1
  191. package/packages/vscode/src/database-services/sap.service.ts +0 -713
  192. package/packages/vscode/src/database-services/sqlite.service.js.map +0 -1
  193. package/packages/vscode/src/database-services/sqlite.service.ts +0 -559
  194. package/packages/vscode/src/extension.ts +0 -76
  195. package/packages/vscode/src/provider/DatabaseTreeProvider.ts +0 -167
  196. package/packages/vscode/src/provider/WebViewProvider.ts +0 -277
  197. package/packages/vscode/src/service/DatabaseServiceBridge.ts +0 -414
  198. package/packages/vscode/src/typings/connection.ts +0 -90
  199. package/packages/vscode/tsconfig.json +0 -21
  200. package/scripts/preinstall.js +0 -112
  201. package/server/index.ts +0 -681
  202. package/server/model/connection.entity.js +0 -11
  203. package/server/model/connection.entity.js.map +0 -1
  204. package/server/model/connection.entity.ts +0 -66
  205. package/server/model/database.entity.js +0 -35
  206. package/server/model/database.entity.js.map +0 -1
  207. package/server/model/database.entity.ts +0 -246
  208. package/server/service/connection.service.ts +0 -359
  209. package/server/service/database/base.service.ts +0 -407
  210. package/server/service/database/cockroachdb.service.ts +0 -871
  211. package/server/service/database/database.service.ts +0 -776
  212. package/server/service/database/index.ts +0 -7
  213. package/server/service/database/mongodb.service.ts +0 -501
  214. package/server/service/database/mssql.service.ts +0 -932
  215. package/server/service/database/mysql.service.ts +0 -1026
  216. package/server/service/database/oracle.service.ts +0 -1036
  217. package/server/service/database/postgres.service.ts +0 -961
  218. package/server/service/database/sap.service.ts +0 -922
  219. package/server/service/database/sqlite.service.ts +0 -788
  220. package/server/service/session.service.ts +0 -158
  221. package/server/tsconfig.json +0 -20
  222. package/src/adapter/ajax.ts +0 -135
  223. package/src/assets/base.css +0 -1
  224. package/src/assets/database.css +0 -950
  225. package/src/assets/images/collapse.png +0 -0
  226. package/src/assets/images/no-login.png +0 -0
  227. package/src/assets/images/svg/illustrations/illustration-1.svg +0 -1
  228. package/src/assets/images/svg/illustrations/illustration-2.svg +0 -2
  229. package/src/assets/images/svg/illustrations/illustration-3.svg +0 -50
  230. package/src/assets/images/svg/illustrations/illustration-4.svg +0 -1
  231. package/src/assets/images/svg/illustrations/illustration-5.svg +0 -73
  232. package/src/assets/images/svg/illustrations/illustration-6.svg +0 -89
  233. package/src/assets/images/svg/illustrations/illustration-7.svg +0 -39
  234. package/src/assets/images/svg/illustrations/illustration-8.svg +0 -1
  235. package/src/assets/images/svg/separators/curve-2.svg +0 -3
  236. package/src/assets/images/svg/separators/curve.svg +0 -3
  237. package/src/assets/images/svg/separators/line.svg +0 -3
  238. package/src/assets/images/theme/light/screen-1-1000x800.jpg +0 -0
  239. package/src/assets/images/theme/light/screen-2-1000x800.jpg +0 -0
  240. package/src/assets/login/bg.jpg +0 -0
  241. package/src/assets/login/bg.png +0 -0
  242. package/src/assets/login/left.jpg +0 -0
  243. package/src/assets/logo.svg +0 -73
  244. package/src/assets/logo.webp +0 -0
  245. package/src/assets/main.css +0 -1
  246. package/src/base/config.ts +0 -20
  247. package/src/base/detect.ts +0 -134
  248. package/src/base/entity.ts +0 -92
  249. package/src/base/eventBus.ts +0 -37
  250. package/src/components/connection-editor/index.vue +0 -589
  251. package/src/components/dataGrid/index.vue +0 -163
  252. package/src/components/dataGrid/pagination.vue +0 -106
  253. package/src/components/loading/index.vue +0 -43
  254. package/src/components/modal/index.ts +0 -181
  255. package/src/components/modal/index.vue +0 -560
  256. package/src/components/toast/index.ts +0 -44
  257. package/src/components/toast/toast.vue +0 -58
  258. package/src/components/user/name.vue +0 -104
  259. package/src/components/user/selector.vue +0 -416
  260. package/src/domain/SysConfig.ts +0 -74
  261. package/src/platform/App.vue +0 -8
  262. package/src/platform/database/components/connection-detail.vue +0 -1153
  263. package/src/platform/database/components/data-editor.vue +0 -478
  264. package/src/platform/database/components/data-import-export.vue +0 -1602
  265. package/src/platform/database/components/database-detail.vue +0 -1199
  266. package/src/platform/database/components/database-monitor.vue +0 -1086
  267. package/src/platform/database/components/db-tools.vue +0 -1265
  268. package/src/platform/database/components/query-history.vue +0 -1349
  269. package/src/platform/database/components/sql-executor.vue +0 -738
  270. package/src/platform/database/components/sql-query-editor.vue +0 -1046
  271. package/src/platform/database/components/table-data-grid.vue +0 -273
  272. package/src/platform/database/components/table-detail.vue +0 -1173
  273. package/src/platform/database/components/table-editor.vue +0 -917
  274. package/src/platform/database/explorer.vue +0 -1840
  275. package/src/platform/database/index.vue +0 -1193
  276. package/src/platform/database/layout.vue +0 -367
  277. package/src/platform/database/router.ts +0 -37
  278. package/src/platform/database/styles/common.scss +0 -602
  279. package/src/platform/database/types/common.ts +0 -445
  280. package/src/platform/database/utils/export.ts +0 -232
  281. package/src/platform/database/utils/helpers.ts +0 -437
  282. package/src/platform/index.ts +0 -33
  283. package/src/platform/router.ts +0 -41
  284. package/src/platform/vscode/bridge.ts +0 -121
  285. package/src/platform/vscode/components/ConnectionPanel.vue +0 -272
  286. package/src/platform/vscode/components/DatabasePanel.vue +0 -532
  287. package/src/platform/vscode/components/QueryPanel.vue +0 -371
  288. package/src/platform/vscode/entry/connection.ts +0 -13
  289. package/src/platform/vscode/entry/database.ts +0 -13
  290. package/src/platform/vscode/entry/query.ts +0 -13
  291. package/src/platform/vscode/index.ts +0 -5
  292. package/src/service/base.ts +0 -134
  293. package/src/service/database.ts +0 -506
  294. package/src/service/login.ts +0 -121
  295. package/src/shims-vue.d.ts +0 -7
  296. package/src/stores/connection.ts +0 -266
  297. package/src/stores/session.ts +0 -87
  298. package/src/typings/database-types.ts +0 -413
  299. package/src/typings/database.ts +0 -364
  300. package/src/typings/global.d.ts +0 -58
  301. package/src/typings/pinia.d.ts +0 -8
  302. package/src/utils/clipboard.ts +0 -30
  303. package/src/utils/database-types.ts +0 -243
  304. package/src/utils/modal.ts +0 -124
  305. package/src/utils/request.ts +0 -55
  306. package/src/utils/sleep.ts +0 -4
  307. package/src/utils/toast.ts +0 -73
  308. package/src/utils/util.ts +0 -171
  309. package/src/utils/xlsx.ts +0 -228
  310. package/tsconfig.json +0 -33
  311. package/tsconfig.server.json +0 -19
  312. package/vite.config.ts +0 -424
  313. package/vite.config.vscode.ts +0 -47
@@ -1,413 +0,0 @@
1
- /**
2
- * 数据库类型定义
3
- */
4
-
5
- export enum DatabaseType {
6
- MYSQL = 'mysql',
7
- POSTGRESQL = 'postgres',
8
- SQLITE = 'sqlite',
9
- ORACLE = 'oracle',
10
- SQLSERVER = 'mssql'
11
- }
12
-
13
- /**
14
- * 数据库类型配置
15
- */
16
- export interface DatabaseTypeConfig {
17
- /** 类型值 */
18
- value: DatabaseType;
19
- /** 显示名称 */
20
- label: string;
21
- /** 图标 */
22
- icon: string;
23
- /** 默认端口 */
24
- defaultPort: number | null;
25
- /** 描述 */
26
- description: string;
27
- /** 支持的列类型 */
28
- supportedColumnTypes: ColumnType[];
29
- }
30
-
31
- /**
32
- * 列类型定义
33
- */
34
- export interface ColumnType {
35
- /** 类型名称 */
36
- name: string;
37
- /** 显示名称 */
38
- label: string;
39
- /** 类别 */
40
- category: ColumnCategory;
41
- /** 是否需要长度参数 */
42
- requiresLength?: boolean;
43
- /** 是否需要精度参数 */
44
- requiresPrecision?: boolean;
45
- /** 是否需要小数位数参数 */
46
- requiresScale?: boolean;
47
- /** 默认长度 */
48
- defaultLength?: number;
49
- /** 默认精度 */
50
- defaultPrecision?: number;
51
- /** 默认小数位数 */
52
- defaultScale?: number;
53
- /** 是否支持无符号 */
54
- supportsUnsigned?: boolean;
55
- /** 是否支持自增 */
56
- supportsAutoIncrement?: boolean;
57
- /** 描述 */
58
- description?: string;
59
- }
60
-
61
- /**
62
- * 列类型类别
63
- */
64
- export enum ColumnCategory {
65
- NUMERIC = 'numeric',
66
- STRING = 'string',
67
- DATE_TIME = 'date_time',
68
- BOOLEAN = 'boolean',
69
- BINARY = 'binary',
70
- TEXT = 'text',
71
- SPATIAL = 'spatial',
72
- JSON = 'json',
73
- ARRAY = 'array',
74
- OTHER = 'other'
75
- }
76
-
77
- /**
78
- * MySQL 列类型定义
79
- */
80
- export const MYSQL_COLUMN_TYPES: ColumnType[] = [
81
- // 数值类型
82
- { name: 'TINYINT', label: 'TINYINT', category: ColumnCategory.NUMERIC, requiresLength: true, defaultLength: 4, supportsUnsigned: true, supportsAutoIncrement: true, description: '微整数,1字节' },
83
- { name: 'SMALLINT', label: 'SMALLINT', category: ColumnCategory.NUMERIC, requiresLength: true, defaultLength: 6, supportsUnsigned: true, supportsAutoIncrement: true, description: '小整数,2字节' },
84
- { name: 'MEDIUMINT', label: 'MEDIUMINT', category: ColumnCategory.NUMERIC, requiresLength: true, defaultLength: 9, supportsUnsigned: true, supportsAutoIncrement: true, description: '中等整数,3字节' },
85
- { name: 'INT', label: 'INT', category: ColumnCategory.NUMERIC, requiresLength: true, defaultLength: 11, supportsUnsigned: true, supportsAutoIncrement: true, description: '标准整数,4字节' },
86
- { name: 'BIGINT', label: 'BIGINT', category: ColumnCategory.NUMERIC, requiresLength: true, defaultLength: 20, supportsUnsigned: true, supportsAutoIncrement: true, description: '大整数,8字节' },
87
- { name: 'DECIMAL', label: 'DECIMAL', category: ColumnCategory.NUMERIC, requiresPrecision: true, requiresScale: true, defaultPrecision: 10, defaultScale: 2, description: '定点小数' },
88
- { name: 'FLOAT', label: 'FLOAT', category: ColumnCategory.NUMERIC, requiresPrecision: true, defaultPrecision: 10, requiresScale: true, defaultScale: 2, description: '单精度浮点数' },
89
- { name: 'DOUBLE', label: 'DOUBLE', category: ColumnCategory.NUMERIC, requiresPrecision: true, defaultPrecision: 16, requiresScale: true, defaultScale: 4, description: '双精度浮点数' },
90
- { name: 'BIT', label: 'BIT', category: ColumnCategory.NUMERIC, requiresLength: true, defaultLength: 1, description: '位类型' },
91
- { name: 'SERIAL', label: 'SERIAL', category: ColumnCategory.NUMERIC, supportsAutoIncrement: true, description: '自增整数(别名)' },
92
-
93
- // 字符串类型
94
- { name: 'CHAR', label: 'CHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 1, description: '固定长度字符串' },
95
- { name: 'VARCHAR', label: 'VARCHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 255, description: '可变长度字符串' },
96
- { name: 'BINARY', label: 'BINARY', category: ColumnCategory.BINARY, requiresLength: true, defaultLength: 1, description: '固定长度二进制' },
97
- { name: 'VARBINARY', label: 'VARBINARY', category: ColumnCategory.BINARY, requiresLength: true, defaultLength: 255, description: '可变长度二进制' },
98
-
99
- // 文本类型
100
- { name: 'TINYTEXT', label: 'TINYTEXT', category: ColumnCategory.TEXT, description: '微型文本,最大255字符' },
101
- { name: 'TEXT', label: 'TEXT', category: ColumnCategory.TEXT, description: '文本,最大65535字符' },
102
- { name: 'MEDIUMTEXT', label: 'MEDIUMTEXT', category: ColumnCategory.TEXT, description: '中等文本,最大16MB' },
103
- { name: 'LONGTEXT', label: 'LONGTEXT', category: ColumnCategory.TEXT, description: '长文本,最大4GB' },
104
-
105
- // 日期时间类型
106
- { name: 'DATE', label: 'DATE', category: ColumnCategory.DATE_TIME, description: '日期' },
107
- { name: 'TIME', label: 'TIME', category: ColumnCategory.DATE_TIME, description: '时间' },
108
- { name: 'DATETIME', label: 'DATETIME', category: ColumnCategory.DATE_TIME, description: '日期时间' },
109
- { name: 'TIMESTAMP', label: 'TIMESTAMP', category: ColumnCategory.DATE_TIME, description: '时间戳' },
110
- { name: 'YEAR', label: 'YEAR', category: ColumnCategory.DATE_TIME, description: '年份' },
111
-
112
- // JSON 类型
113
- { name: 'JSON', label: 'JSON', category: ColumnCategory.JSON, description: 'JSON数据类型' },
114
-
115
- // 枚举和集合类型
116
- { name: 'ENUM', label: 'ENUM', category: ColumnCategory.OTHER, description: '枚举类型' },
117
- { name: 'SET', label: 'SET', category: ColumnCategory.OTHER, description: '集合类型' },
118
-
119
- // 空间类型
120
- { name: 'GEOMETRY', label: 'GEOMETRY', category: ColumnCategory.SPATIAL, description: '几何类型' },
121
- { name: 'POINT', label: 'POINT', category: ColumnCategory.SPATIAL, description: '点类型' },
122
- { name: 'LINESTRING', label: 'LINESTRING', category: ColumnCategory.SPATIAL, description: '线类型' },
123
- { name: 'POLYGON', label: 'POLYGON', category: ColumnCategory.SPATIAL, description: '多边形类型' }
124
- ];
125
-
126
- /**
127
- * PostgreSQL 列类型定义
128
- */
129
- export const POSTGRESQL_COLUMN_TYPES: ColumnType[] = [
130
- // 数值类型
131
- { name: 'SMALLINT', label: 'SMALLINT', category: ColumnCategory.NUMERIC, description: '小整数,2字节' },
132
- { name: 'INTEGER', label: 'INTEGER', category: ColumnCategory.NUMERIC, supportsAutoIncrement: true, description: '整数,4字节' },
133
- { name: 'BIGINT', label: 'BIGINT', category: ColumnCategory.NUMERIC, supportsAutoIncrement: true, description: '大整数,8字节' },
134
- { name: 'DECIMAL', label: 'DECIMAL', category: ColumnCategory.NUMERIC, requiresPrecision: true, requiresScale: true, defaultPrecision: 10, defaultScale: 2, description: '定点小数' },
135
- { name: 'NUMERIC', label: 'NUMERIC', category: ColumnCategory.NUMERIC, requiresPrecision: true, requiresScale: true, defaultPrecision: 10, defaultScale: 2, description: '定点小数' },
136
- { name: 'REAL', label: 'REAL', category: ColumnCategory.NUMERIC, description: '单精度浮点数,4字节' },
137
- { name: 'DOUBLE PRECISION', label: 'DOUBLE PRECISION', category: ColumnCategory.NUMERIC, description: '双精度浮点数,8字节' },
138
- { name: 'SMALLSERIAL', label: 'SMALLSERIAL', category: ColumnCategory.NUMERIC, supportsAutoIncrement: true, description: '自增小整数' },
139
- { name: 'SERIAL', label: 'SERIAL', category: ColumnCategory.NUMERIC, supportsAutoIncrement: true, description: '自增整数' },
140
- { name: 'BIGSERIAL', label: 'BIGSERIAL', category: ColumnCategory.NUMERIC, supportsAutoIncrement: true, description: '自增大整数' },
141
- { name: 'MONEY', label: 'MONEY', category: ColumnCategory.NUMERIC, description: '货币类型' },
142
-
143
- // 字符串类型
144
- { name: 'CHARACTER VARYING', label: 'VARCHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 255, description: '可变长度字符串' },
145
- { name: 'CHARACTER', label: 'CHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 1, description: '固定长度字符串' },
146
- { name: 'TEXT', label: 'TEXT', category: ColumnCategory.TEXT, description: '文本' },
147
-
148
- // 二进制类型
149
- { name: 'BYTEA', label: 'BYTEA', category: ColumnCategory.BINARY, description: '二进制数据' },
150
-
151
- // 日期时间类型
152
- { name: 'DATE', label: 'DATE', category: ColumnCategory.DATE_TIME, description: '日期' },
153
- { name: 'TIME', label: 'TIME', category: ColumnCategory.DATE_TIME, description: '时间' },
154
- { name: 'TIME WITH TIME ZONE', label: 'TIME WITH TIME ZONE', category: ColumnCategory.DATE_TIME, description: '带时区时间' },
155
- { name: 'TIMESTAMP', label: 'TIMESTAMP', category: ColumnCategory.DATE_TIME, description: '时间戳' },
156
- { name: 'TIMESTAMP WITH TIME ZONE', label: 'TIMESTAMP WITH TIME ZONE', category: ColumnCategory.DATE_TIME, description: '带时区时间戳' },
157
- { name: 'INTERVAL', label: 'INTERVAL', category: ColumnCategory.DATE_TIME, description: '时间间隔' },
158
-
159
- // 布尔类型
160
- { name: 'BOOLEAN', label: 'BOOLEAN', category: ColumnCategory.BOOLEAN, description: '布尔值' },
161
-
162
- // JSON 类型
163
- { name: 'JSON', label: 'JSON', category: ColumnCategory.JSON, description: 'JSON数据类型' },
164
- { name: 'JSONB', label: 'JSONB', category: ColumnCategory.JSON, description: '二进制JSON数据类型' },
165
-
166
- // 数组类型
167
- { name: 'TEXT[]', label: 'TEXT[]', category: ColumnCategory.ARRAY, description: '文本数组' },
168
- { name: 'INTEGER[]', label: 'INTEGER[]', category: ColumnCategory.ARRAY, description: '整数数组' },
169
-
170
- // UUID 类型
171
- { name: 'UUID', label: 'UUID', category: ColumnCategory.OTHER, description: 'UUID类型' },
172
-
173
- // 网络地址类型
174
- { name: 'INET', label: 'INET', category: ColumnCategory.OTHER, description: 'IP地址' },
175
- { name: 'CIDR', label: 'CIDR', category: ColumnCategory.OTHER, description: 'CIDR地址' },
176
-
177
- // 几何类型
178
- { name: 'POINT', label: 'POINT', category: ColumnCategory.SPATIAL, description: '点类型' },
179
- { name: 'LINE', label: 'LINE', category: ColumnCategory.SPATIAL, description: '线类型' },
180
- { name: 'LSEG', label: 'LSEG', category: ColumnCategory.SPATIAL, description: '线段类型' },
181
- { name: 'BOX', label: 'BOX', category: ColumnCategory.SPATIAL, description: '矩形类型' },
182
- { name: 'PATH', label: 'PATH', category: ColumnCategory.SPATIAL, description: '路径类型' },
183
- { name: 'POLYGON', label: 'POLYGON', category: ColumnCategory.SPATIAL, description: '多边形类型' },
184
- { name: 'CIRCLE', label: 'CIRCLE', category: ColumnCategory.SPATIAL, description: '圆形类型' }
185
- ];
186
-
187
- /**
188
- * SQLite 列类型定义
189
- */
190
- export const SQLITE_COLUMN_TYPES: ColumnType[] = [
191
- // 数值类型
192
- { name: 'INTEGER', label: 'INTEGER', category: ColumnCategory.NUMERIC, supportsAutoIncrement: true, description: '整数,支持自增' },
193
- { name: 'INT', label: 'INT', category: ColumnCategory.NUMERIC, supportsAutoIncrement: true, description: '整数(INTEGER别名)' },
194
- { name: 'BIGINT', label: 'BIGINT', category: ColumnCategory.NUMERIC, description: '大整数' },
195
- { name: 'SMALLINT', label: 'SMALLINT', category: ColumnCategory.NUMERIC, description: '小整数' },
196
- { name: 'TINYINT', label: 'TINYINT', category: ColumnCategory.NUMERIC, description: '微整数' },
197
- { name: 'REAL', label: 'REAL', category: ColumnCategory.NUMERIC, description: '浮点数' },
198
- { name: 'DOUBLE', label: 'DOUBLE', category: ColumnCategory.NUMERIC, description: '双精度浮点数' },
199
- { name: 'FLOAT', label: 'FLOAT', category: ColumnCategory.NUMERIC, description: '浮点数' },
200
-
201
- // 字符串类型
202
- { name: 'TEXT', label: 'TEXT', category: ColumnCategory.TEXT, description: '文本' },
203
- { name: 'CHARACTER', label: 'CHARACTER', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 1, description: '字符' },
204
- { name: 'VARCHAR', label: 'VARCHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 255, description: '可变长字符串' },
205
- { name: 'NCHAR', label: 'NCHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 1, description: 'Unicode字符' },
206
- { name: 'NVARCHAR', label: 'NVARCHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 255, description: 'Unicode可变长字符串' },
207
- { name: 'CLOB', label: 'CLOB', category: ColumnCategory.TEXT, description: '字符大对象' },
208
-
209
- // 二进制类型
210
- { name: 'BLOB', label: 'BLOB', category: ColumnCategory.BINARY, description: '二进制大对象' },
211
- { name: 'BINARY', label: 'BINARY', category: ColumnCategory.BINARY, requiresLength: true, defaultLength: 1, description: '二进制' },
212
- { name: 'VARBINARY', label: 'VARBINARY', category: ColumnCategory.BINARY, requiresLength: true, defaultLength: 255, description: '可变长二进制' },
213
-
214
- // 日期时间类型
215
- { name: 'DATE', label: 'DATE', category: ColumnCategory.DATE_TIME, description: '日期' },
216
- { name: 'DATETIME', label: 'DATETIME', category: ColumnCategory.DATE_TIME, description: '日期时间' },
217
- { name: 'TIME', label: 'TIME', category: ColumnCategory.DATE_TIME, description: '时间' },
218
- { name: 'TIMESTAMP', label: 'TIMESTAMP', category: ColumnCategory.DATE_TIME, description: '时间戳' },
219
-
220
- // 数值(特殊)
221
- { name: 'NUMERIC', label: 'NUMERIC', category: ColumnCategory.NUMERIC, requiresPrecision: true, requiresScale: true, defaultPrecision: 10, defaultScale: 2, description: '定点小数' },
222
- { name: 'DECIMAL', label: 'DECIMAL', category: ColumnCategory.NUMERIC, requiresPrecision: true, requiresScale: true, defaultPrecision: 10, defaultScale: 2, description: '定点小数' },
223
- { name: 'BOOLEAN', label: 'BOOLEAN', category: ColumnCategory.BOOLEAN, description: '布尔值' },
224
-
225
- // 其他类型
226
- { name: 'ANY', label: 'ANY', category: ColumnCategory.OTHER, description: '任意类型' }
227
- ];
228
-
229
- /**
230
- * Oracle 列类型定义
231
- */
232
- export const ORACLE_COLUMN_TYPES: ColumnType[] = [
233
- // 数值类型
234
- { name: 'NUMBER', label: 'NUMBER', category: ColumnCategory.NUMERIC, requiresPrecision: true, requiresScale: true, defaultPrecision: 10, defaultScale: 2, description: '数值类型' },
235
- { name: 'INTEGER', label: 'INTEGER', category: ColumnCategory.NUMERIC, description: '整数类型' },
236
- { name: 'INT', label: 'INT', category: ColumnCategory.NUMERIC, description: '整数类型' },
237
- { name: 'SMALLINT', label: 'SMALLINT', category: ColumnCategory.NUMERIC, description: '小整数类型' },
238
- { name: 'REAL', label: 'REAL', category: ColumnCategory.NUMERIC, description: '浮点数类型' },
239
- { name: 'DOUBLE PRECISION', label: 'DOUBLE PRECISION', category: ColumnCategory.NUMERIC, description: '双精度浮点数' },
240
- { name: 'FLOAT', label: 'FLOAT', category: ColumnCategory.NUMERIC, requiresPrecision: true, defaultPrecision: 126, description: '浮点数' },
241
- { name: 'BINARY_FLOAT', label: 'BINARY_FLOAT', category: ColumnCategory.NUMERIC, description: '二进制浮点数' },
242
- { name: 'BINARY_DOUBLE', label: 'BINARY_DOUBLE', category: ColumnCategory.NUMERIC, description: '双精度二进制浮点数' },
243
-
244
- // 字符串类型
245
- { name: 'CHAR', label: 'CHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 1, description: '固定长度字符串' },
246
- { name: 'VARCHAR2', label: 'VARCHAR2', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 4000, description: '可变长度字符串' },
247
- { name: 'NVARCHAR2', label: 'NVARCHAR2', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 2000, description: 'Unicode可变长度字符串' },
248
- { name: 'NCHAR', label: 'NCHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 1, description: 'Unicode固定长度字符串' },
249
- { name: 'CLOB', label: 'CLOB', category: ColumnCategory.TEXT, description: '字符大对象' },
250
- { name: 'NCLOB', label: 'NCLOB', category: ColumnCategory.TEXT, description: 'Unicode字符大对象' },
251
- { name: 'LONG', label: 'LONG', category: ColumnCategory.TEXT, description: '长字符串类型' },
252
-
253
- // 二进制类型
254
- { name: 'RAW', label: 'RAW', category: ColumnCategory.BINARY, requiresLength: true, defaultLength: 2000, description: '二进制数据' },
255
- { name: 'LONG RAW', label: 'LONG RAW', category: ColumnCategory.BINARY, description: '长二进制数据' },
256
- { name: 'BLOB', label: 'BLOB', category: ColumnCategory.BINARY, description: '二进制大对象' },
257
- { name: 'BFILE', label: 'BFILE', category: ColumnCategory.BINARY, description: '外部二进制文件' },
258
-
259
- // 日期时间类型
260
- { name: 'DATE', label: 'DATE', category: ColumnCategory.DATE_TIME, description: '日期时间' },
261
- { name: 'TIMESTAMP', label: 'TIMESTAMP', category: ColumnCategory.DATE_TIME, description: '时间戳' },
262
- { name: 'TIMESTAMP WITH TIME ZONE', label: 'TIMESTAMP WITH TIME ZONE', category: ColumnCategory.DATE_TIME, description: '带时区时间戳' },
263
- { name: 'TIMESTAMP WITH LOCAL TIME ZONE', label: 'TIMESTAMP WITH LOCAL TIME ZONE', category: ColumnCategory.DATE_TIME, description: '带本地时区时间戳' },
264
- { name: 'INTERVAL YEAR TO MONTH', label: 'INTERVAL YEAR TO MONTH', category: ColumnCategory.DATE_TIME, description: '年月间隔' },
265
- { name: 'INTERVAL DAY TO SECOND', label: 'INTERVAL DAY TO SECOND', category: ColumnCategory.DATE_TIME, description: '日秒间隔' },
266
-
267
- // 行标识符类型
268
- { name: 'ROWID', label: 'ROWID', category: ColumnCategory.OTHER, description: '行标识符' },
269
- { name: 'UROWID', label: 'UROWID', category: ColumnCategory.OTHER, description: '通用行标识符' },
270
-
271
- // XML 类型
272
- { name: 'XMLTYPE', label: 'XMLTYPE', category: ColumnCategory.OTHER, description: 'XML数据类型' },
273
-
274
- // 空间类型
275
- { name: 'SDO_GEOMETRY', label: 'SDO_GEOMETRY', category: ColumnCategory.SPATIAL, description: '空间几何类型' }
276
- ];
277
-
278
- /**
279
- * SQL Server 列类型定义
280
- */
281
- export const SQLSERVER_COLUMN_TYPES: ColumnType[] = [
282
- // 精确数值类型
283
- { name: 'BIGINT', label: 'BIGINT', category: ColumnCategory.NUMERIC, supportsAutoIncrement: true, description: '大整数,8字节' },
284
- { name: 'INT', label: 'INT', category: ColumnCategory.NUMERIC, supportsAutoIncrement: true, description: '整数,4字节' },
285
- { name: 'SMALLINT', label: 'SMALLINT', category: ColumnCategory.NUMERIC, description: '小整数,2字节' },
286
- { name: 'TINYINT', label: 'TINYINT', category: ColumnCategory.NUMERIC, description: '微整数,1字节' },
287
- { name: 'BIT', label: 'BIT', category: ColumnCategory.BOOLEAN, description: '位类型,布尔值' },
288
- { name: 'DECIMAL', label: 'DECIMAL', category: ColumnCategory.NUMERIC, requiresPrecision: true, requiresScale: true, defaultPrecision: 18, defaultScale: 0, description: '定点小数' },
289
- { name: 'NUMERIC', label: 'NUMERIC', category: ColumnCategory.NUMERIC, requiresPrecision: true, requiresScale: true, defaultPrecision: 18, defaultScale: 0, description: '定点小数' },
290
- { name: 'MONEY', label: 'MONEY', category: ColumnCategory.NUMERIC, description: '货币类型,8字节' },
291
- { name: 'SMALLMONEY', label: 'SMALLMONEY', category: ColumnCategory.NUMERIC, description: '小货币类型,4字节' },
292
-
293
- // 近似数值类型
294
- { name: 'FLOAT', label: 'FLOAT', category: ColumnCategory.NUMERIC, requiresPrecision: true, defaultPrecision: 53, description: '浮点数' },
295
- { name: 'REAL', label: 'REAL', category: ColumnCategory.NUMERIC, description: '浮点数,4字节' },
296
-
297
- // 日期时间类型
298
- { name: 'DATE', label: 'DATE', category: ColumnCategory.DATE_TIME, description: '日期' },
299
- { name: 'TIME', label: 'TIME', category: ColumnCategory.DATE_TIME, description: '时间' },
300
- { name: 'DATETIMEOFFSET', label: 'DATETIMEOFFSET', category: ColumnCategory.DATE_TIME, description: '带时区日期时间' },
301
- { name: 'DATETIME2', label: 'DATETIME2', category: ColumnCategory.DATE_TIME, description: '扩展日期时间' },
302
- { name: 'SMALLDATETIME', label: 'SMALLDATETIME', category: ColumnCategory.DATE_TIME, description: '小日期时间' },
303
- { name: 'DATETIME', label: 'DATETIME', category: ColumnCategory.DATE_TIME, description: '日期时间' },
304
-
305
- // 字符串类型
306
- { name: 'CHAR', label: 'CHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 1, description: '固定长度字符串' },
307
- { name: 'VARCHAR', label: 'VARCHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 1, description: '可变长度字符串' },
308
- { name: 'TEXT', label: 'TEXT', category: ColumnCategory.TEXT, description: '文本' },
309
- { name: 'NCHAR', label: 'NCHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 1, description: 'Unicode固定长度字符串' },
310
- { name: 'NVARCHAR', label: 'NVARCHAR', category: ColumnCategory.STRING, requiresLength: true, defaultLength: 1, description: 'Unicode可变长度字符串' },
311
- { name: 'NTEXT', label: 'NTEXT', category: ColumnCategory.TEXT, description: 'Unicode文本' },
312
-
313
- // 二进制字符串类型
314
- { name: 'BINARY', label: 'BINARY', category: ColumnCategory.BINARY, requiresLength: true, defaultLength: 1, description: '固定长度二进制' },
315
- { name: 'VARBINARY', label: 'VARBINARY', category: ColumnCategory.BINARY, requiresLength: true, defaultLength: 1, description: '可变长度二进制' },
316
- { name: 'IMAGE', label: 'IMAGE', category: ColumnCategory.BINARY, description: '二进制图像' },
317
-
318
- // 其他类型
319
- { name: 'CURSOR', label: 'CURSOR', category: ColumnCategory.OTHER, description: '游标类型' },
320
- { name: 'TIMESTAMP', label: 'TIMESTAMP', category: ColumnCategory.OTHER, description: '时间戳类型' },
321
- { name: 'UNIQUEIDENTIFIER', label: 'UNIQUEIDENTIFIER', category: ColumnCategory.OTHER, description: '唯一标识符' },
322
- { name: 'SQL_VARIANT', label: 'SQL_VARIANT', category: ColumnCategory.OTHER, description: '变体类型' },
323
- { name: 'TABLE', label: 'TABLE', category: ColumnCategory.OTHER, description: '表类型' },
324
- { name: 'XML', label: 'XML', category: ColumnCategory.OTHER, description: 'XML数据类型' },
325
-
326
- // 空间类型
327
- { name: 'GEOGRAPHY', label: 'GEOGRAPHY', category: ColumnCategory.SPATIAL, description: '地理空间类型' },
328
- { name: 'GEOMETRY', label: 'GEOMETRY', category: ColumnCategory.SPATIAL, description: '几何空间类型' }
329
- ];
330
-
331
- /**
332
- * 数据库类型配置映射
333
- */
334
- export const DATABASE_TYPE_CONFIGS: Record<DatabaseType, DatabaseTypeConfig> = {
335
- [DatabaseType.MYSQL]: {
336
- value: DatabaseType.MYSQL,
337
- label: 'MySQL',
338
- icon: 'bi-database',
339
- defaultPort: 3306,
340
- description: 'MySQL数据库',
341
- supportedColumnTypes: MYSQL_COLUMN_TYPES
342
- },
343
- [DatabaseType.POSTGRESQL]: {
344
- value: DatabaseType.POSTGRESQL,
345
- label: 'PostgreSQL',
346
- icon: 'bi-database',
347
- defaultPort: 5432,
348
- description: 'PostgreSQL数据库',
349
- supportedColumnTypes: POSTGRESQL_COLUMN_TYPES
350
- },
351
- [DatabaseType.SQLITE]: {
352
- value: DatabaseType.SQLITE,
353
- label: 'SQLite',
354
- icon: 'bi-database',
355
- defaultPort: null,
356
- description: 'SQLite数据库',
357
- supportedColumnTypes: SQLITE_COLUMN_TYPES
358
- },
359
- [DatabaseType.ORACLE]: {
360
- value: DatabaseType.ORACLE,
361
- label: 'Oracle',
362
- icon: 'bi-database',
363
- defaultPort: 1521,
364
- description: 'Oracle数据库',
365
- supportedColumnTypes: ORACLE_COLUMN_TYPES
366
- },
367
- [DatabaseType.SQLSERVER]: {
368
- value: DatabaseType.SQLSERVER,
369
- label: 'SQL Server',
370
- icon: 'bi-database',
371
- defaultPort: 1433,
372
- description: 'Microsoft SQL Server',
373
- supportedColumnTypes: SQLSERVER_COLUMN_TYPES
374
- }
375
- };
376
-
377
- /**
378
- * 根据数据库类型获取列类型
379
- */
380
- export function getColumnTypes(databaseType: DatabaseType): ColumnType[] {
381
- const config = DATABASE_TYPE_CONFIGS[databaseType];
382
- return config?.supportedColumnTypes || [];
383
- }
384
-
385
- /**
386
- * 根据数据库名称获取列类型
387
- */
388
- export function getColumnTypesByName(databaseTypeName: string): ColumnType[] {
389
- const type = Object.values(DatabaseType).find(t => t === databaseTypeName.toLowerCase());
390
- return type ? getColumnTypes(type) : [];
391
- }
392
-
393
- /**
394
- * 根据类别获取列类型
395
- */
396
- export function getColumnTypesByCategory(databaseType: DatabaseType, category: ColumnCategory): ColumnType[] {
397
- const allTypes = getColumnTypes(databaseType);
398
- return allTypes.filter(type => type.category === category);
399
- }
400
-
401
- /**
402
- * 获取所有支持的数据库类型配置
403
- */
404
- export function getDatabaseTypeConfigs(): DatabaseTypeConfig[] {
405
- return Object.values(DATABASE_TYPE_CONFIGS);
406
- }
407
-
408
- /**
409
- * 获取所有支持的数据库类型
410
- */
411
- export function getSupportedDatabaseTypes(): DatabaseType[] {
412
- return Object.values(DatabaseType);
413
- }