fdb2 1.0.7 → 1.0.9

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 (234) hide show
  1. package/.dockerignore +21 -21
  2. package/.editorconfig +11 -11
  3. package/.eslintrc.cjs +14 -14
  4. package/.eslintrc.json +7 -7
  5. package/.prettierrc.js +3 -3
  6. package/.tpl.env +21 -21
  7. package/.vscodeignore +45 -45
  8. package/README.md +312 -312
  9. package/bin/build.sh +28 -28
  10. package/bin/deploy.sh +8 -8
  11. package/bin/dev.sh +10 -10
  12. package/bin/docker/dev-docker-compose.yml +43 -43
  13. package/bin/docker/dev.Dockerfile +24 -24
  14. package/bin/docker/prod-docker-compose.yml +17 -17
  15. package/bin/docker/prod.Dockerfile +29 -29
  16. package/bin/fdb2.js +220 -220
  17. package/dist/package.json +29 -29
  18. package/dist/pnpm-lock.yaml +1042 -354
  19. package/dist/public/explorer.css +1464 -1437
  20. package/dist/public/explorer.js +764 -226
  21. package/dist/public/index.css +1026 -1026
  22. package/dist/public/index.js +15 -9
  23. package/dist/public/layout.css +221 -221
  24. package/dist/public/layout.js +1 -1
  25. package/dist/public/vue.js +8 -2
  26. package/dist/scripts/preinstall.js +112 -112
  27. package/dist/server/index.d.ts.map +1 -1
  28. package/dist/server/index.js +8 -0
  29. package/dist/server/index.js.map +1 -1
  30. package/dist/server/index.ts +680 -671
  31. package/dist/server/model/connection.entity.ts +65 -65
  32. package/dist/server/model/database.entity.ts +245 -245
  33. package/dist/server/service/connection.service.d.ts +6 -1
  34. package/dist/server/service/connection.service.d.ts.map +1 -1
  35. package/dist/server/service/connection.service.js +15 -0
  36. package/dist/server/service/connection.service.js.map +1 -1
  37. package/dist/server/service/connection.service.ts +356 -341
  38. package/dist/server/service/database/base.service.d.ts +27 -0
  39. package/dist/server/service/database/base.service.d.ts.map +1 -1
  40. package/dist/server/service/database/base.service.js +17 -0
  41. package/dist/server/service/database/base.service.js.map +1 -1
  42. package/dist/server/service/database/base.service.ts +406 -367
  43. package/dist/server/service/database/cockroachdb.service.d.ts +16 -0
  44. package/dist/server/service/database/cockroachdb.service.d.ts.map +1 -1
  45. package/dist/server/service/database/cockroachdb.service.js +220 -154
  46. package/dist/server/service/database/cockroachdb.service.js.map +1 -1
  47. package/dist/server/service/database/cockroachdb.service.ts +871 -782
  48. package/dist/server/service/database/database.service.d.ts +4 -0
  49. package/dist/server/service/database/database.service.d.ts.map +1 -1
  50. package/dist/server/service/database/database.service.js +123 -0
  51. package/dist/server/service/database/database.service.js.map +1 -1
  52. package/dist/server/service/database/database.service.ts +775 -638
  53. package/dist/server/service/database/index.ts +6 -6
  54. package/dist/server/service/database/mongodb.service.d.ts +16 -0
  55. package/dist/server/service/database/mongodb.service.d.ts.map +1 -1
  56. package/dist/server/service/database/mongodb.service.js +35 -0
  57. package/dist/server/service/database/mongodb.service.js.map +1 -1
  58. package/dist/server/service/database/mongodb.service.ts +39 -1
  59. package/dist/server/service/database/mssql.service.d.ts +16 -0
  60. package/dist/server/service/database/mssql.service.d.ts.map +1 -1
  61. package/dist/server/service/database/mssql.service.js +168 -96
  62. package/dist/server/service/database/mssql.service.js.map +1 -1
  63. package/dist/server/service/database/mssql.service.ts +931 -840
  64. package/dist/server/service/database/mysql.service.d.ts +16 -0
  65. package/dist/server/service/database/mysql.service.d.ts.map +1 -1
  66. package/dist/server/service/database/mysql.service.js +189 -80
  67. package/dist/server/service/database/mysql.service.js.map +1 -1
  68. package/dist/server/service/database/mysql.service.ts +1025 -890
  69. package/dist/server/service/database/oracle.service.d.ts +16 -0
  70. package/dist/server/service/database/oracle.service.d.ts.map +1 -1
  71. package/dist/server/service/database/oracle.service.js +182 -120
  72. package/dist/server/service/database/oracle.service.js.map +1 -1
  73. package/dist/server/service/database/oracle.service.ts +1035 -959
  74. package/dist/server/service/database/postgres.service.d.ts +16 -0
  75. package/dist/server/service/database/postgres.service.d.ts.map +1 -1
  76. package/dist/server/service/database/postgres.service.js +154 -88
  77. package/dist/server/service/database/postgres.service.js.map +1 -1
  78. package/dist/server/service/database/postgres.service.ts +960 -871
  79. package/dist/server/service/database/sap.service.d.ts +16 -0
  80. package/dist/server/service/database/sap.service.d.ts.map +1 -1
  81. package/dist/server/service/database/sap.service.js +66 -0
  82. package/dist/server/service/database/sap.service.js.map +1 -1
  83. package/dist/server/service/database/sap.service.ts +89 -0
  84. package/dist/server/service/database/sqlite.service.d.ts +16 -0
  85. package/dist/server/service/database/sqlite.service.d.ts.map +1 -1
  86. package/dist/server/service/database/sqlite.service.js +77 -18
  87. package/dist/server/service/database/sqlite.service.js.map +1 -1
  88. package/dist/server/service/database/sqlite.service.ts +787 -708
  89. package/dist/server/service/session.service.ts +158 -158
  90. package/dist/view/index.html +38 -38
  91. package/env.d.ts +1 -1
  92. package/package.json +1 -1
  93. package/packages/vscode/.vscodeignore +44 -44
  94. package/packages/vscode/README.md +62 -62
  95. package/packages/vscode/out/database-services/cockroachdb.service.js +154 -154
  96. package/packages/vscode/out/database-services/mssql.service.js +96 -96
  97. package/packages/vscode/out/database-services/mysql.service.js +80 -80
  98. package/packages/vscode/out/database-services/oracle.service.js +120 -120
  99. package/packages/vscode/out/database-services/postgres.service.js +88 -88
  100. package/packages/vscode/out/database-services/sqlite.service.js +18 -18
  101. package/packages/vscode/out/provider/WebViewProvider.js +32 -32
  102. package/packages/vscode/package.json +142 -142
  103. package/packages/vscode/resources/icon.svg +5 -5
  104. package/packages/vscode/resources/webview/connection.css +41 -41
  105. package/packages/vscode/resources/webview/database.css +163 -163
  106. package/packages/vscode/resources/webview/index.html +9 -9
  107. package/packages/vscode/resources/webview/modules/header.tpl +13 -13
  108. package/packages/vscode/resources/webview/modules/initial_state.tpl +54 -54
  109. package/packages/vscode/resources/webview/query.css +104 -104
  110. package/packages/vscode/src/database-services/base.service.ts +362 -362
  111. package/packages/vscode/src/database-services/cockroachdb.service.ts +659 -659
  112. package/packages/vscode/src/database-services/connection.service.ts +340 -340
  113. package/packages/vscode/src/database-services/database.service.ts +629 -629
  114. package/packages/vscode/src/database-services/index.ts +6 -6
  115. package/packages/vscode/src/database-services/model/connection.entity.ts +65 -65
  116. package/packages/vscode/src/database-services/model/database.entity.ts +245 -245
  117. package/packages/vscode/src/database-services/mssql.service.ts +722 -722
  118. package/packages/vscode/src/database-services/mysql.service.ts +760 -760
  119. package/packages/vscode/src/database-services/oracle.service.ts +831 -831
  120. package/packages/vscode/src/database-services/postgres.service.ts +740 -740
  121. package/packages/vscode/src/database-services/sqlite.service.ts +558 -558
  122. package/packages/vscode/src/extension.ts +76 -76
  123. package/packages/vscode/src/provider/DatabaseTreeProvider.ts +167 -167
  124. package/packages/vscode/src/provider/WebViewProvider.ts +277 -277
  125. package/packages/vscode/src/service/DatabaseServiceBridge.ts +414 -414
  126. package/packages/vscode/src/typings/connection.ts +90 -90
  127. package/packages/vscode/tsconfig.json +21 -21
  128. package/public/index.html +9 -9
  129. package/public/modules/header.tpl +13 -13
  130. package/public/modules/initial_state.tpl +54 -54
  131. package/scripts/preinstall.js +112 -112
  132. package/server/index.ts +680 -671
  133. package/server/model/connection.entity.ts +65 -65
  134. package/server/model/database.entity.ts +245 -245
  135. package/server/service/connection.service.ts +356 -341
  136. package/server/service/database/base.service.ts +406 -367
  137. package/server/service/database/cockroachdb.service.ts +871 -782
  138. package/server/service/database/database.service.ts +775 -638
  139. package/server/service/database/index.ts +6 -6
  140. package/server/service/database/mongodb.service.ts +39 -1
  141. package/server/service/database/mssql.service.ts +931 -840
  142. package/server/service/database/mysql.service.ts +1025 -890
  143. package/server/service/database/oracle.service.ts +1035 -959
  144. package/server/service/database/postgres.service.ts +960 -871
  145. package/server/service/database/sap.service.ts +89 -0
  146. package/server/service/database/sqlite.service.ts +787 -708
  147. package/server/service/session.service.ts +158 -158
  148. package/server/tsconfig.json +20 -20
  149. package/server.js +149 -149
  150. package/server.pid +1 -0
  151. package/src/adapter/ajax.ts +135 -135
  152. package/src/assets/base.css +1 -1
  153. package/src/assets/database.css +949 -949
  154. package/src/assets/images/svg/illustrations/illustration-1.svg +1 -1
  155. package/src/assets/images/svg/illustrations/illustration-2.svg +2 -2
  156. package/src/assets/images/svg/illustrations/illustration-3.svg +50 -50
  157. package/src/assets/images/svg/illustrations/illustration-4.svg +1 -1
  158. package/src/assets/images/svg/illustrations/illustration-5.svg +73 -73
  159. package/src/assets/images/svg/illustrations/illustration-6.svg +89 -89
  160. package/src/assets/images/svg/illustrations/illustration-7.svg +39 -39
  161. package/src/assets/images/svg/separators/curve-2.svg +3 -3
  162. package/src/assets/images/svg/separators/curve.svg +3 -3
  163. package/src/assets/images/svg/separators/line.svg +3 -3
  164. package/src/assets/logo.svg +73 -73
  165. package/src/assets/main.css +1 -1
  166. package/src/base/config.ts +20 -20
  167. package/src/base/detect.ts +134 -134
  168. package/src/base/entity.ts +92 -92
  169. package/src/base/eventBus.ts +36 -36
  170. package/src/components/connection-editor/index.vue +588 -588
  171. package/src/components/dataGrid/index.vue +104 -104
  172. package/src/components/dataGrid/pagination.vue +105 -105
  173. package/src/components/loading/index.vue +42 -42
  174. package/src/components/modal/index.ts +180 -180
  175. package/src/components/modal/index.vue +560 -560
  176. package/src/components/toast/index.ts +43 -43
  177. package/src/components/toast/toast.vue +57 -57
  178. package/src/components/user/name.vue +103 -103
  179. package/src/components/user/selector.vue +416 -416
  180. package/src/domain/SysConfig.ts +74 -74
  181. package/src/platform/App.vue +7 -7
  182. package/src/platform/database/components/connection-detail.vue +1153 -1154
  183. package/src/platform/database/components/data-editor.vue +477 -477
  184. package/src/platform/database/components/database-detail.vue +1173 -1172
  185. package/src/platform/database/components/database-monitor.vue +1085 -1085
  186. package/src/platform/database/components/db-tools.vue +1264 -816
  187. package/src/platform/database/components/query-history.vue +1348 -1348
  188. package/src/platform/database/components/sql-executor.vue +737 -737
  189. package/src/platform/database/components/sql-query-editor.vue +1045 -1045
  190. package/src/platform/database/components/table-detail.vue +1375 -1376
  191. package/src/platform/database/components/table-editor.vue +916 -916
  192. package/src/platform/database/explorer.vue +1839 -1839
  193. package/src/platform/database/index.vue +1192 -1192
  194. package/src/platform/database/layout.vue +366 -366
  195. package/src/platform/database/router.ts +36 -36
  196. package/src/platform/database/styles/common.scss +601 -601
  197. package/src/platform/database/types/common.ts +444 -444
  198. package/src/platform/database/utils/export.ts +231 -231
  199. package/src/platform/database/utils/helpers.ts +436 -436
  200. package/src/platform/index.ts +32 -32
  201. package/src/platform/router.ts +40 -40
  202. package/src/platform/vscode/bridge.ts +121 -121
  203. package/src/platform/vscode/components/ConnectionPanel.vue +272 -272
  204. package/src/platform/vscode/components/DatabasePanel.vue +532 -532
  205. package/src/platform/vscode/components/QueryPanel.vue +371 -371
  206. package/src/platform/vscode/entry/connection.ts +13 -13
  207. package/src/platform/vscode/entry/database.ts +13 -13
  208. package/src/platform/vscode/entry/query.ts +13 -13
  209. package/src/platform/vscode/index.ts +5 -5
  210. package/src/service/base.ts +133 -127
  211. package/src/service/database.ts +505 -495
  212. package/src/service/login.ts +120 -120
  213. package/src/shims-vue.d.ts +6 -6
  214. package/src/stores/connection.ts +266 -266
  215. package/src/stores/session.ts +87 -87
  216. package/src/typings/database-types.ts +412 -412
  217. package/src/typings/database.ts +363 -363
  218. package/src/typings/global.d.ts +58 -58
  219. package/src/typings/pinia.d.ts +7 -7
  220. package/src/utils/clipboard.ts +29 -29
  221. package/src/utils/database-types.ts +242 -242
  222. package/src/utils/modal.ts +123 -123
  223. package/src/utils/request.ts +55 -55
  224. package/src/utils/sleep.ts +3 -3
  225. package/src/utils/toast.ts +73 -73
  226. package/src/utils/util.ts +171 -171
  227. package/src/utils/xlsx.ts +228 -228
  228. package/tsconfig.json +33 -33
  229. package/view/index.html +9 -9
  230. package/view/modules/header.tpl +13 -13
  231. package/view/modules/initial_state.tpl +19 -19
  232. package/vite.config.ts +424 -424
  233. package/vite.config.vscode.ts +47 -47
  234. package/server/backups/db_ai_breakout_2026-03-11T08-38-48-677Z.sql +0 -0
package/README.md CHANGED
@@ -1,312 +1,312 @@
1
- # fdb2 - 数据库管理工具
2
-
3
- 一款轻量级、跨平台的数据库管理工具,支持多种数据库类型,提供类似 Navicat Premium 的使用体验。
4
-
5
- ![fdb2 界面预览](public/fdb2.png)
6
-
7
- ## 快速开始
8
-
9
- ### 安装
10
-
11
- ```bash
12
- # 全局安装(推荐)
13
- npm install -g fdb2
14
-
15
- # 或使用 yarn
16
- yarn global add fdb2
17
-
18
- # 或使用 pnpm
19
- pnpm add -g fdb2
20
- ```
21
-
22
- ### 启动服务
23
-
24
- ```bash
25
- # 启动数据库管理工具
26
- fdb2 start
27
-
28
- # 停止服务
29
- fdb2 stop
30
-
31
- # 查看服务状态
32
- fdb2 status
33
-
34
- # 重启服务
35
- fdb2 restart
36
- ```
37
-
38
- ### 访问应用
39
-
40
- 启动服务后,在浏览器中打开(具体路径请看输出的信息,端口有可能变化):
41
- ```
42
- http://localhost:9800
43
- ```
44
-
45
- **主页**: [https://surl.fit/tools/tools/fdb2](https://surl.fit/tools/tools/fdb2)
46
-
47
- ## 功能特性
48
-
49
- ### 连接管理
50
- - 支持 8 种数据库类型:MySQL、PostgreSQL、SQLite、SQL Server、Oracle、CockroachDB、MongoDB、SAP HANA
51
- - 可视化连接配置界面,操作简单直观
52
- - 一键测试连接,快速验证配置
53
- - 连接信息本地安全存储,无需重复输入
54
-
55
- ### 数据库结构
56
- - 清晰的数据库信息概览
57
- - 详细的表结构查看
58
- - 完整的列信息、索引、外键关系展示
59
- - 实时显示数据库大小和统计信息
60
-
61
- ### 数据操作
62
- - 表数据快速查看和分页浏览
63
- - 灵活的条件查询和排序
64
- - 便捷的数据插入、编辑、删除
65
- - 支持导出数据为 JSON、CSV 格式
66
-
67
- ### SQL 查询
68
- - 代码编辑器风格的 SQL 输入框
69
- - SQL 语法格式化,提升可读性
70
- - 自动保存查询历史记录
71
- - 批量查询结果展示
72
-
73
- ### 核心优势
74
- - **零配置启动**:全局安装后即可使用,无需复杂配置
75
- - **跨平台支持**:Windows、macOS、Linux 全平台兼容
76
- - **轻量高效**:资源占用低
77
- - **本地存储**:数据保存在本地,安全可靠
78
- - **离线使用**:无需联网即可管理本地数据库
79
-
80
- ## 使用指南
81
-
82
- ### 添加数据库连接
83
-
84
- 1. 打开浏览器访问 `http://localhost:9800`
85
- 2. 点击左侧导航的"连接管理"
86
- 3. 点击"新增连接"按钮
87
- 4. 填写连接信息:
88
- - **连接名称**:自定义名称,便于识别(如:生产环境 MySQL)
89
- - **数据库类型**:选择对应的数据库类型
90
- - **主机地址**:数据库服务器地址(本地数据库使用 `localhost` 或 `127.0.0.1`)
91
- - **端口**:数据库服务端口(会自动填充默认端口)
92
- - **数据库名称**:要连接的数据库名
93
- - **用户名/密码**:数据库认证信息
94
- 5. 点击"测试连接"验证配置是否正确
95
- 6. 保存连接配置
96
-
97
- ### 查看数据库结构
98
-
99
- 1. 在左侧导航选择"数据库结构"
100
- 2. 选择已配置的数据库连接
101
- 3. 选择要查看的数据库
102
- 4. 浏览表列表和详细信息:
103
- - **表基本信息**:行数、大小等统计信息
104
- - **列定义**:数据类型、约束、默认值等
105
- - **索引信息**:主键、唯一索引、普通索引
106
- - **外键关系**:表之间的关联关系
107
-
108
- ### 查看和编辑表数据
109
-
110
- 1. 在表列表中点击"数据"按钮
111
- 2. 设置查询条件:
112
- - **WHERE 条件**:输入过滤条件(如:`id > 100`)
113
- - **排序字段**:指定排序方式(如:`create_time DESC`)
114
- - **每页显示**:调整分页大小(10/50/100/500)
115
- 3. 点击"查询"按钮执行查询
116
- 4. 支持的操作:
117
- - **查看详情**:点击行查看完整数据
118
- - **编辑记录**:修改数据后保存
119
- - **删除记录**:删除不需要的数据
120
- - **插入新数据**:点击"新增"按钮添加数据
121
- - **导出数据**:选择 JSON 或 CSV 格式导出
122
-
123
- ### 执行 SQL 查询
124
-
125
- 1. 点击左侧导航的"SQL 查询"
126
- 2. 选择数据库连接
127
- 3. 在编辑器中输入 SQL 语句
128
- 4. 快捷操作:
129
- - **Ctrl + Enter**(Windows)或 **Cmd + Enter**(Mac):快速执行
130
- - 点击"格式化"按钮:美化 SQL 语句
131
- - 查看历史记录:点击历史记录按钮选择之前的查询
132
- 5. 查看查询结果,支持导出功能
133
-
134
- ### 常用 SQL 示例
135
-
136
- ```sql
137
- -- 查询表前 10 条数据
138
- SELECT * FROM table_name LIMIT 10;
139
-
140
- -- 按条件查询
141
- SELECT * FROM users WHERE status = 'active' ORDER BY created_at DESC;
142
-
143
- -- 统计数据
144
- SELECT COUNT(*) as total, status FROM users GROUP BY status;
145
-
146
- -- 插入数据
147
- INSERT INTO users (name, email, status) VALUES ('张三', 'zhangsan@example.com', 'active');
148
-
149
- -- 更新数据
150
- UPDATE users SET status = 'inactive' WHERE last_login < '2024-01-01';
151
-
152
- -- 删除数据
153
- DELETE FROM logs WHERE created_at < '2024-01-01';
154
- ```
155
-
156
- ## 支持的数据库类型
157
-
158
- | 数据库类型 | 默认端口 | 特性 |
159
- |-----------|---------|------|
160
- | MySQL | 3306 | 支持存储过程、触发器、视图、全文搜索 |
161
- | PostgreSQL | 5432 | 支持存储过程、触发器、视图、JSON 类型 |
162
- | SQLite | - | 轻量级,文件型数据库,无需服务器 |
163
- | SQL Server | 1433 | 微软数据库,支持存储过程、触发器、视图 |
164
- | Oracle | 1521 | 企业级数据库,功能强大 |
165
- | CockroachDB | 26257 | 分布式 SQL 数据库,兼容 PostgreSQL |
166
- | MongoDB | 27017 | NoSQL 文档数据库 |
167
- | SAP HANA | 39013 | 内存数据库,高性能分析 |
168
-
169
- **兼容性说明**:
170
- - MariaDB、TiDB 兼容 MySQL,选择 MySQL 类型即可
171
- - Aurora MySQL 兼容 MySQL,选择 MySQL 类型即可
172
- - Aurora PostgreSQL 兼容 PostgreSQL,选择 PostgreSQL 类型即可
173
- - Better-SQLite3 兼容 SQLite,选择 SQLite 类型即可
174
-
175
- ## 常见问题
176
-
177
- ### 安装和启动
178
-
179
- **Q: 安装后无法启动服务?**
180
-
181
- A: 请检查以下几点:
182
- 1. 确认已正确安装:`npm install -g fdb2`
183
- 2. 检查 Node.js 版本(建议 v14 或更高):`node --version`
184
- 3. 查看错误信息:`fdb2 start --verbose`
185
- 4. 检查端口是否被占用
186
-
187
- **Q: 如何更换端口?**
188
-
189
- A: 使用 `-p` 参数指定端口:
190
- ```bash
191
- fdb2 start -p 8080
192
- ```
193
-
194
- 也可以通过环境变量设置端口:
195
- ```bash
196
- # Windows
197
- set PORT=8080
198
- fdb2 start
199
-
200
- # Mac/Linux
201
- PORT=8080 fdb2 start
202
- ```
203
-
204
- ### 连接问题
205
-
206
- **Q: 连接数据库失败怎么办?**
207
-
208
- A: 请按以下步骤排查:
209
- 1. 确认数据库服务正在运行
210
- 2. 检查网络连接和端口是否正确
211
- 3. 验证用户名和密码是否正确
212
- 4. 检查数据库是否允许远程连接
213
- 5. 查看数据库防火墙设置
214
-
215
- **Q: SQLite 数据库连接失败?**
216
-
217
- A: SQLite 连接需要提供数据库文件路径:
218
- - 绝对路径:`D:\data\mydb.sqlite`
219
- - 相对路径:`./data/mydb.sqlite`(相对于数据目录)
220
- - 确保文件存在且有读取权限
221
-
222
- ### 数据操作
223
-
224
- **Q: 查询结果为空?**
225
-
226
- A: 可能的原因:
227
- 1. 表中确实没有数据
228
- 2. WHERE 条件过于严格
229
- 3. 数据库名称或表名错误
230
- 4. 查询权限不足
231
-
232
- **Q: 无法编辑或删除数据?**
233
-
234
- A: 请检查:
235
- 1. 是否有足够的数据库权限
236
- 2. 表是否有外键约束
237
- 3. 数据是否被锁定
238
- 4. 查看数据库错误日志
239
-
240
- ### 性能问题
241
-
242
- **Q: 查询速度很慢?**
243
-
244
- A: 优化建议:
245
- 1. 添加适当的索引
246
- 2. 限制查询结果数量(使用 LIMIT)
247
- 3. 避免使用 `SELECT *`,只查询需要的字段
248
- 4. 优化 WHERE 条件
249
- 5. 考虑分批处理大数据量
250
-
251
- **Q: 数据库信息加载很慢?**
252
-
253
- A: 可能的原因:
254
- 1. 数据库中表数量过多
255
- 2. 表数据量过大
256
- 3. 网络延迟
257
- 4. 数据库性能问题
258
-
259
- ### 数据安全
260
-
261
- **Q: 连接密码安全吗?**
262
-
263
- A: 当前版本密码以明文形式存储在本地配置文件中。建议:
264
- 1. 不要在公共电脑上保存敏感数据库连接
265
- 2. 定期更换数据库密码
266
- 3. 使用只读权限的账号进行日常操作
267
- 4. 生产环境建议使用加密连接(SSL/TLS)
268
-
269
- **Q: 如何备份数据库连接配置?**
270
-
271
- A: 复制配置文件即可:
272
- ```bash
273
- # Windows
274
- copy C:\Users\用户名\.db-tool\connections.json D:\backup\
275
-
276
- # Mac/Linux
277
- cp ~/.db-tool/connections.json ~/backup/
278
- ```
279
-
280
- ### 更新和卸载
281
-
282
- **Q: 如何更新到最新版本?**
283
-
284
- A: 重新安装即可:
285
- ```bash
286
- npm update -g fdb2
287
- ```
288
-
289
- **Q: 如何完全卸载?**
290
-
291
- A: 执行以下步骤:
292
- ```bash
293
- # 卸载程序
294
- npm uninstall -g fdb2
295
-
296
- # 删除数据目录(可选,会删除所有连接配置)
297
- # Windows
298
- rmdir /s C:\Users\用户名\.db-tool
299
-
300
- # Mac/Linux
301
- rm -rf ~/.db-tool
302
- ```
303
-
304
- ## 获取帮助
305
-
306
- - **GitHub Issues**: [提交问题](https://github.com/fefeding/fdb2/issues)
307
- - **文档**: 查看在线文档
308
- - **社区**: 加入用户交流群
309
-
310
- ---
311
-
312
- **享受使用 fdb2 数据库管理工具!如有任何问题,欢迎反馈。**
1
+ # fdb2 - 数据库管理工具
2
+
3
+ 一款轻量级、跨平台的数据库管理工具,支持多种数据库类型,提供类似 Navicat Premium 的使用体验。
4
+
5
+ ![fdb2 界面预览](public/fdb2.png)
6
+
7
+ ## 快速开始
8
+
9
+ ### 安装
10
+
11
+ ```bash
12
+ # 全局安装(推荐)
13
+ npm install -g fdb2
14
+
15
+ # 或使用 yarn
16
+ yarn global add fdb2
17
+
18
+ # 或使用 pnpm
19
+ pnpm add -g fdb2
20
+ ```
21
+
22
+ ### 启动服务
23
+
24
+ ```bash
25
+ # 启动数据库管理工具
26
+ fdb2 start
27
+
28
+ # 停止服务
29
+ fdb2 stop
30
+
31
+ # 查看服务状态
32
+ fdb2 status
33
+
34
+ # 重启服务
35
+ fdb2 restart
36
+ ```
37
+
38
+ ### 访问应用
39
+
40
+ 启动服务后,在浏览器中打开(具体路径请看输出的信息,端口有可能变化):
41
+ ```
42
+ http://localhost:9800
43
+ ```
44
+
45
+ **主页**: [https://surl.fit/tools/tools/fdb2](https://surl.fit/tools/tools/fdb2)
46
+
47
+ ## 功能特性
48
+
49
+ ### 连接管理
50
+ - 支持 8 种数据库类型:MySQL、PostgreSQL、SQLite、SQL Server、Oracle、CockroachDB、MongoDB、SAP HANA
51
+ - 可视化连接配置界面,操作简单直观
52
+ - 一键测试连接,快速验证配置
53
+ - 连接信息本地安全存储,无需重复输入
54
+
55
+ ### 数据库结构
56
+ - 清晰的数据库信息概览
57
+ - 详细的表结构查看
58
+ - 完整的列信息、索引、外键关系展示
59
+ - 实时显示数据库大小和统计信息
60
+
61
+ ### 数据操作
62
+ - 表数据快速查看和分页浏览
63
+ - 灵活的条件查询和排序
64
+ - 便捷的数据插入、编辑、删除
65
+ - 支持导出数据为 JSON、CSV 格式
66
+
67
+ ### SQL 查询
68
+ - 代码编辑器风格的 SQL 输入框
69
+ - SQL 语法格式化,提升可读性
70
+ - 自动保存查询历史记录
71
+ - 批量查询结果展示
72
+
73
+ ### 核心优势
74
+ - **零配置启动**:全局安装后即可使用,无需复杂配置
75
+ - **跨平台支持**:Windows、macOS、Linux 全平台兼容
76
+ - **轻量高效**:资源占用低
77
+ - **本地存储**:数据保存在本地,安全可靠
78
+ - **离线使用**:无需联网即可管理本地数据库
79
+
80
+ ## 使用指南
81
+
82
+ ### 添加数据库连接
83
+
84
+ 1. 打开浏览器访问 `http://localhost:9800`
85
+ 2. 点击左侧导航的"连接管理"
86
+ 3. 点击"新增连接"按钮
87
+ 4. 填写连接信息:
88
+ - **连接名称**:自定义名称,便于识别(如:生产环境 MySQL)
89
+ - **数据库类型**:选择对应的数据库类型
90
+ - **主机地址**:数据库服务器地址(本地数据库使用 `localhost` 或 `127.0.0.1`)
91
+ - **端口**:数据库服务端口(会自动填充默认端口)
92
+ - **数据库名称**:要连接的数据库名
93
+ - **用户名/密码**:数据库认证信息
94
+ 5. 点击"测试连接"验证配置是否正确
95
+ 6. 保存连接配置
96
+
97
+ ### 查看数据库结构
98
+
99
+ 1. 在左侧导航选择"数据库结构"
100
+ 2. 选择已配置的数据库连接
101
+ 3. 选择要查看的数据库
102
+ 4. 浏览表列表和详细信息:
103
+ - **表基本信息**:行数、大小等统计信息
104
+ - **列定义**:数据类型、约束、默认值等
105
+ - **索引信息**:主键、唯一索引、普通索引
106
+ - **外键关系**:表之间的关联关系
107
+
108
+ ### 查看和编辑表数据
109
+
110
+ 1. 在表列表中点击"数据"按钮
111
+ 2. 设置查询条件:
112
+ - **WHERE 条件**:输入过滤条件(如:`id > 100`)
113
+ - **排序字段**:指定排序方式(如:`create_time DESC`)
114
+ - **每页显示**:调整分页大小(10/50/100/500)
115
+ 3. 点击"查询"按钮执行查询
116
+ 4. 支持的操作:
117
+ - **查看详情**:点击行查看完整数据
118
+ - **编辑记录**:修改数据后保存
119
+ - **删除记录**:删除不需要的数据
120
+ - **插入新数据**:点击"新增"按钮添加数据
121
+ - **导出数据**:选择 JSON 或 CSV 格式导出
122
+
123
+ ### 执行 SQL 查询
124
+
125
+ 1. 点击左侧导航的"SQL 查询"
126
+ 2. 选择数据库连接
127
+ 3. 在编辑器中输入 SQL 语句
128
+ 4. 快捷操作:
129
+ - **Ctrl + Enter**(Windows)或 **Cmd + Enter**(Mac):快速执行
130
+ - 点击"格式化"按钮:美化 SQL 语句
131
+ - 查看历史记录:点击历史记录按钮选择之前的查询
132
+ 5. 查看查询结果,支持导出功能
133
+
134
+ ### 常用 SQL 示例
135
+
136
+ ```sql
137
+ -- 查询表前 10 条数据
138
+ SELECT * FROM table_name LIMIT 10;
139
+
140
+ -- 按条件查询
141
+ SELECT * FROM users WHERE status = 'active' ORDER BY created_at DESC;
142
+
143
+ -- 统计数据
144
+ SELECT COUNT(*) as total, status FROM users GROUP BY status;
145
+
146
+ -- 插入数据
147
+ INSERT INTO users (name, email, status) VALUES ('张三', 'zhangsan@example.com', 'active');
148
+
149
+ -- 更新数据
150
+ UPDATE users SET status = 'inactive' WHERE last_login < '2024-01-01';
151
+
152
+ -- 删除数据
153
+ DELETE FROM logs WHERE created_at < '2024-01-01';
154
+ ```
155
+
156
+ ## 支持的数据库类型
157
+
158
+ | 数据库类型 | 默认端口 | 特性 |
159
+ |-----------|---------|------|
160
+ | MySQL | 3306 | 支持存储过程、触发器、视图、全文搜索 |
161
+ | PostgreSQL | 5432 | 支持存储过程、触发器、视图、JSON 类型 |
162
+ | SQLite | - | 轻量级,文件型数据库,无需服务器 |
163
+ | SQL Server | 1433 | 微软数据库,支持存储过程、触发器、视图 |
164
+ | Oracle | 1521 | 企业级数据库,功能强大 |
165
+ | CockroachDB | 26257 | 分布式 SQL 数据库,兼容 PostgreSQL |
166
+ | MongoDB | 27017 | NoSQL 文档数据库 |
167
+ | SAP HANA | 39013 | 内存数据库,高性能分析 |
168
+
169
+ **兼容性说明**:
170
+ - MariaDB、TiDB 兼容 MySQL,选择 MySQL 类型即可
171
+ - Aurora MySQL 兼容 MySQL,选择 MySQL 类型即可
172
+ - Aurora PostgreSQL 兼容 PostgreSQL,选择 PostgreSQL 类型即可
173
+ - Better-SQLite3 兼容 SQLite,选择 SQLite 类型即可
174
+
175
+ ## 常见问题
176
+
177
+ ### 安装和启动
178
+
179
+ **Q: 安装后无法启动服务?**
180
+
181
+ A: 请检查以下几点:
182
+ 1. 确认已正确安装:`npm install -g fdb2`
183
+ 2. 检查 Node.js 版本(建议 v14 或更高):`node --version`
184
+ 3. 查看错误信息:`fdb2 start --verbose`
185
+ 4. 检查端口是否被占用
186
+
187
+ **Q: 如何更换端口?**
188
+
189
+ A: 使用 `-p` 参数指定端口:
190
+ ```bash
191
+ fdb2 start -p 8080
192
+ ```
193
+
194
+ 也可以通过环境变量设置端口:
195
+ ```bash
196
+ # Windows
197
+ set PORT=8080
198
+ fdb2 start
199
+
200
+ # Mac/Linux
201
+ PORT=8080 fdb2 start
202
+ ```
203
+
204
+ ### 连接问题
205
+
206
+ **Q: 连接数据库失败怎么办?**
207
+
208
+ A: 请按以下步骤排查:
209
+ 1. 确认数据库服务正在运行
210
+ 2. 检查网络连接和端口是否正确
211
+ 3. 验证用户名和密码是否正确
212
+ 4. 检查数据库是否允许远程连接
213
+ 5. 查看数据库防火墙设置
214
+
215
+ **Q: SQLite 数据库连接失败?**
216
+
217
+ A: SQLite 连接需要提供数据库文件路径:
218
+ - 绝对路径:`D:\data\mydb.sqlite`
219
+ - 相对路径:`./data/mydb.sqlite`(相对于数据目录)
220
+ - 确保文件存在且有读取权限
221
+
222
+ ### 数据操作
223
+
224
+ **Q: 查询结果为空?**
225
+
226
+ A: 可能的原因:
227
+ 1. 表中确实没有数据
228
+ 2. WHERE 条件过于严格
229
+ 3. 数据库名称或表名错误
230
+ 4. 查询权限不足
231
+
232
+ **Q: 无法编辑或删除数据?**
233
+
234
+ A: 请检查:
235
+ 1. 是否有足够的数据库权限
236
+ 2. 表是否有外键约束
237
+ 3. 数据是否被锁定
238
+ 4. 查看数据库错误日志
239
+
240
+ ### 性能问题
241
+
242
+ **Q: 查询速度很慢?**
243
+
244
+ A: 优化建议:
245
+ 1. 添加适当的索引
246
+ 2. 限制查询结果数量(使用 LIMIT)
247
+ 3. 避免使用 `SELECT *`,只查询需要的字段
248
+ 4. 优化 WHERE 条件
249
+ 5. 考虑分批处理大数据量
250
+
251
+ **Q: 数据库信息加载很慢?**
252
+
253
+ A: 可能的原因:
254
+ 1. 数据库中表数量过多
255
+ 2. 表数据量过大
256
+ 3. 网络延迟
257
+ 4. 数据库性能问题
258
+
259
+ ### 数据安全
260
+
261
+ **Q: 连接密码安全吗?**
262
+
263
+ A: 当前版本密码以明文形式存储在本地配置文件中。建议:
264
+ 1. 不要在公共电脑上保存敏感数据库连接
265
+ 2. 定期更换数据库密码
266
+ 3. 使用只读权限的账号进行日常操作
267
+ 4. 生产环境建议使用加密连接(SSL/TLS)
268
+
269
+ **Q: 如何备份数据库连接配置?**
270
+
271
+ A: 复制配置文件即可:
272
+ ```bash
273
+ # Windows
274
+ copy C:\Users\用户名\.db-tool\connections.json D:\backup\
275
+
276
+ # Mac/Linux
277
+ cp ~/.db-tool/connections.json ~/backup/
278
+ ```
279
+
280
+ ### 更新和卸载
281
+
282
+ **Q: 如何更新到最新版本?**
283
+
284
+ A: 重新安装即可:
285
+ ```bash
286
+ npm update -g fdb2
287
+ ```
288
+
289
+ **Q: 如何完全卸载?**
290
+
291
+ A: 执行以下步骤:
292
+ ```bash
293
+ # 卸载程序
294
+ npm uninstall -g fdb2
295
+
296
+ # 删除数据目录(可选,会删除所有连接配置)
297
+ # Windows
298
+ rmdir /s C:\Users\用户名\.db-tool
299
+
300
+ # Mac/Linux
301
+ rm -rf ~/.db-tool
302
+ ```
303
+
304
+ ## 获取帮助
305
+
306
+ - **GitHub Issues**: [提交问题](https://github.com/fefeding/fdb2/issues)
307
+ - **文档**: 查看在线文档
308
+ - **社区**: 加入用户交流群
309
+
310
+ ---
311
+
312
+ **享受使用 fdb2 数据库管理工具!如有任何问题,欢迎反馈。**
package/bin/build.sh CHANGED
@@ -1,28 +1,28 @@
1
- #!/bin/sh
2
- # 发生错误时终止
3
- set -e
4
-
5
- rm -rf ./web/dist/*
6
-
7
- echo '清除web构建目录web/dist的所有文件'
8
-
9
- npm run build:vue
10
-
11
- echo '前端资源编译完成...'
12
-
13
- echo '清空构建结果目录...'
14
- rm -rf ./dist/*
15
-
16
- npm run build:midway
17
-
18
- echo '后台服务构建完成...'
19
-
20
- # mkdir -p ./src/public
21
- # cp -r ./web/dist/public/* ./src/public/
22
-
23
- echo '生成dist目录下的web目录,并把web/dist下所有文件复制进去'
24
- mkdir -p ./dist/web
25
- # 多入口复制
26
- cp -rf ./web/dist/* ./dist/web/
27
-
28
- echo '构建完成'
1
+ #!/bin/sh
2
+ # 发生错误时终止
3
+ set -e
4
+
5
+ rm -rf ./web/dist/*
6
+
7
+ echo '清除web构建目录web/dist的所有文件'
8
+
9
+ npm run build:vue
10
+
11
+ echo '前端资源编译完成...'
12
+
13
+ echo '清空构建结果目录...'
14
+ rm -rf ./dist/*
15
+
16
+ npm run build:midway
17
+
18
+ echo '后台服务构建完成...'
19
+
20
+ # mkdir -p ./src/public
21
+ # cp -r ./web/dist/public/* ./src/public/
22
+
23
+ echo '生成dist目录下的web目录,并把web/dist下所有文件复制进去'
24
+ mkdir -p ./dist/web
25
+ # 多入口复制
26
+ cp -rf ./web/dist/* ./dist/web/
27
+
28
+ echo '构建完成'