wyhaya
V2EX  ›  分享创造

做了个数据库客户端,非常轻量级,欢迎大家尝试一下

By wyhaya at 2023 年 9 月 11 日 · 9436 次点击

目前支持 PostgreSQL, MySQL, MSSQL 和 SQLite 数据库,还处于测试版。

欢迎大家尝试一下,也欢迎提点反馈建议。

https://dataflare.app

第 1 条附言  ·  2023 年 9 月 12 日
非常感谢大家的建议。
我建了个群: https://t.me/dataflare
81 条回复  •  2024-06-07 17:27:31 +08:00
brader
   1
brader  
   2023 年 9 月 11 日
试用了一下,整体画面看着还是很舒服的,美观、简约,但我似乎没有发现修改表设计功能,这是个很重要的功能。
然后 UI 交互上,很多二次点击和折叠,这点我觉得不太好,比如修改行内容、排序,sql 查询中,run 每次都要点两下。这几个可以参考 navicat ,它做的就很好
2kCS5c0b0ITXE5k2
   2
2kCS5c0b0ITXE5k2  
   2023 年 9 月 11 日
没有修改表功能..
OceanBreeze
   3
OceanBreeze  
   2023 年 9 月 11 日
太强了
wyhaya
   4
wyhaya  
OP
   2023 年 9 月 11 日
@brader @emeab 感谢建议,修改表功能这个我还在开发中,以后会加上的。
UI 交互这块儿我再优化优化,确实不太好用。
关于 run 每次都要点两下,其实这个我主要是想让用户使用快捷键 cmd + enter / cmd + shift + enter 来运行 SQL, 这样也更方便快捷,而且更加清晰。
jlkm2010
   5
jlkm2010  
   2023 年 9 月 11 日
tauri 开发的吗
wyhaya
   6
wyhaya  
OP
   2023 年 9 月 11 日
@jlkm2010 是的
haozes
   7
haozes  
   2023 年 9 月 11 日
看上去,真不赖
zoharSoul
   8
zoharSoul  
   2023 年 9 月 11 日
感觉和 datagrip 有点像, 尤其是那个 new table 的界面
真不错啊,
mikaelson
   9
mikaelson  
   2023 年 9 月 11 日
看过去不错啊,现在流行的那几个客户端,都感觉太重了
BearCookie
   10
BearCookie  
   2023 年 9 月 11 日
有种 tableplus 的感觉,非常棒啊
turan12
   11
turan12  
   2023 年 9 月 11 日 via iPhone
@mikaelson 确实是,其实普通情况下用不到那么多功能。
Axel2
   12
Axel2  
   2023 年 9 月 11 日
v 站果然是藏龙卧虎之地
mikaelson
   13
mikaelson  
   2023 年 9 月 11 日
@turan12 #11 dbeaver 给我的感觉就非常卡。。。不懂为什么,navicat 倒是好多了,不过也还是臃肿
BearCookie
   14
BearCookie  
   2023 年 9 月 11 日
连接 127.0.0.1:3306
会报错:encountered unexpected or invalid data:unexpected response from SsLRequest:0×4a
0x663
   15
0x663  
   2023 年 9 月 11 日
@neochen13 #14 进去默认是 PostgreSQL 的驱动,点那三个 … 然后选择支持你数据库的,看你端口是 3306 应该是 MySQL
0x663
   16
0x663  
   2023 年 9 月 11 日
非常不错的轻量级数据库,如果后续能够加入配置云端同步就好了
npe
   17
npe  
   2023 年 9 月 11 日
不错,希望增加 SSH
BearCookie
   18
BearCookie  
   2023 年 9 月 11 日
@0x663 #15 我点了三个点,显示:
Connections (灰色)
Import
Export
没了……
BearCookie
   19
BearCookie  
   2023 年 9 月 11 日
@0x663 #15 尝试了一下,实际上应该是点三个点,左边的 New Connection 才对……
C603H6r18Q1mSP9N
   20
C603H6r18Q1mSP9N  
   2023 年 9 月 11 日
链接 mysql:error communicating with database: received fatal alert: HandshakeFailure

界面太好看,考虑过开源部分基础框架吗?可以提交一些通用的组件库
wyhaya
   21
wyhaya  
OP
   2023 年 9 月 11 日
@0x663 感谢建议,不过目前不会做这些功能,我还是想着能将现有功能尽快稳定下来。
@npe 现在可以 PG 和 MySQL 都支持 SSH 代理啊,MSSQL 的我还没加上,目前还有点问题。
@neochen13 界面设计的有点让人迷惑吧,我下个版本改进一下。
BearCookie
   22
BearCookie  
   2023 年 9 月 11 日
使用了下,完成度好高!再优化优化,可以代替我现在用的 tableplus 了
NoOneNoBody
   23
NoOneNoBody  
   2023 年 9 月 11 日
原来还真是个客户端,只能连接,没有打开本地 sqlite 文件
elboble
   24
elboble  
   2023 年 9 月 11 日
macos11.6 ,打开白页面,是不是在加载资源?全局代理也不行。
lazyboy
   25
lazyboy  
   2023 年 9 月 11 日
Unsupported datatype: BIT
wyhaya
   26
wyhaya  
OP
   2023 年 9 月 11 日
@NoOneNoBody 对于 SQLite ,如果不填写 数据库文件路径,是会在内存中打开一个数据库,如果你填写了,是会打开本地数据库的
luzemin
   27
luzemin  
   2023 年 9 月 11 日
wyhaya
   28
wyhaya  
OP
   2023 年 9 月 11 日
@elboble 感谢,我只在 macOS 12.x 上测试了,再老的版本 我就没测试过了,我回头看一下。
@lazyboy 在 MySQL 中有两个不支持的类型,一个是 BIT 一个是 GEOMETRY ,我还没有来及的添加,后续会加上
wyhaya
   29
wyhaya  
OP
   2023 年 9 月 11 日
@elboble 另外,应用除了 你主动连接数据库 和 在每次打开时 调用 “检查更新” 接口外,不会访问任何网络,所以没有必要开启代理
NoOneNoBody
   30
NoOneNoBody  
   2023 年 9 月 11 日
@wyhaya #26
我的意思是我理解错了
这个是管理数据的东西,不是管理数据库的东西
连 sqlite 也需要通过协议,而不是直接打开文件
elboble
   31
elboble  
   2023 年 9 月 11 日
@wyhaya 11.6 的 intel 版本
lazypu
   32
lazypu  
   2023 年 9 月 11 日
good ,支持 linux 就很需要,Linux 下数据库客户端太少了。
zzl22100048
   33
zzl22100048  
   2023 年 9 月 11 日
这个界面有点像 dbgate
wyhaya
   34
wyhaya  
OP
   2023 年 9 月 11 日
@shanghai1998 这个错误不太明显,以后我优化优化,我也不好说这是什么原因导致的,你 SSL 选项选的哪个,或者使用了代理吗?

组件是使用 RadixUI, 我加了点样式,这个开源就算了,我觉得意义不大
9dP06m83vIV00l72
   35
9dP06m83vIV00l72  
   2023 年 9 月 11 日
做 袋鼠数据库工具 近五年了,不好听的话就省了,惟愿兄弟能初心不改,坚持到底。
marcong95
   36
marcong95  
   2023 年 9 月 11 日
建议考虑支持一下 sqlcipher 之类的加密 sqlite ,试了几个客户端对 sqlcipher 的支持都有点问题。。
wyhaya
   37
wyhaya  
OP
   2023 年 9 月 11 日
@andytao 谢谢,第一次听说 袋鼠数据库工具,我看了一下,感觉好强大啊
wyhaya
   38
wyhaya  
OP
   2023 年 9 月 11 日
@marcong95 收到 🫡
EmptyDX
   39
EmptyDX  
   2023 年 9 月 11 日
适用了一下,感觉还不错,希望越来越好。Mark 一下
优点:
1. 清爽简洁
2. 连接查询很快

待优化:
1. Query 框输入较快时,背景底色会一闪一闪
2. 结果较多时,滚动查看没那么流畅,会一闪一闪
3. 表操作较少,例如:缺少修改表、截断表、查看表结构等
4. 希望 SQL 可以 uglify
wyhaya
   40
wyhaya  
OP
   2023 年 9 月 11 日
@EmptyDX 非常感谢,我会尽快改进
fonlan
   41
fonlan  
   2023 年 9 月 11 日
挺不错的,支持支持。
提个建议,对列表形式的显示还是不够直观,Array<1>这种样式看不到具体 list 的内容,不够直观。
wyhaya
   42
wyhaya  
OP
   2023 年 9 月 11 日
@fonlan 确实是这样,我考虑的是由于单元格比较小,展示列表会很困难,现在只能通过双击显示编辑器来查看具体内容,这里还有待优化。(目前还不支持编辑 Array )
body007
   43
body007  
   2023 年 9 月 11 日
体验不错,先 Mark ,期待后续更多功能。
xiaohundun
   44
xiaohundun  
   2023 年 9 月 11 日
Mark ,等新增了修改表功能就迁移过来,另外有考虑做导入导出之类的辅助功能么
wyhaya
   45
wyhaya  
OP
   2023 年 9 月 11 日
@xiaohundun 导入 目前还不支持,导出 目前只支持导出当前 页/当前查询结果,并且只支持 JSON ,包括导入/导出/备份之类的,我目前都还没考虑到,还缺失很多,以后看情况再加吧。
xiaohundun
   46
xiaohundun  
   2023 年 9 月 11 日
@wyhaya 可能我没找到哈,能不能关闭 autofetch ,没有的话可以加个开关么
BigBai
   47
BigBai  
   2023 年 9 月 11 日 via Android
作者您好,在 windows 10 LTSC 系统的沙盒(sandbox)环境下安装失败,报错信息`Failed to install WebView2! The app can't run withoutit. Try restarting the installer.`[报错截图]( )
JohnSwit
   48
JohnSwit  
   2023 年 9 月 11 日
刚试用了一下,还是有一点问题:
1.写查询语句,有明显的卡顿,具体就是输入字母后没有立马出现,要等待几百毫秒,比如我输入字母 FROM ,我已经输入完毕了,然后软件才出现 FROM ,连续输入明显的卡顿感,可能我表比较多,有 1000 多个表。
2.WHERE 语句后,显示的字段不明显,比如我查询 A 表,WHERE 语句后一般来说就是加上 A 表的条件,但是我发现我想快速获取一些字段,输入后没有明显的匹配上。
3.无法搜索表,我想通过我的查询语句去看表结构,结果不行,然后我想看看有没有办法搜索想要的表,没看到搜索功能,我 1000 多个表,一个一个找不太可能。
JohnSwit
   49
JohnSwit  
   2023 年 9 月 11 日
还有一点,能不能不要自动为我的表名或字段加上 '' 引号?改多几次,就会有很多引号,还得一个一个删掉,而且还会引起语句问题
faceair
   50
faceair  
   2023 年 9 月 11 日
尝试连接 https://doris.apache.org 的 mysql 端口报了一个错:error returned from database: 1105 (HY000): errCode = 2, detailMessage = Set statement does't support non-constant expr.

看是否方便兼容一下这种支持 mysql 协议,但又没那么标准的服务端
JohnSwit
   51
JohnSwit  
   2023 年 9 月 11 日
还有一个致命问题,查询速度太慢,相同的表,10 万+数据,DataGrip 秒出结果,你这个客户端需要 20 秒+才能出结果,并且运行过程中整个程序都卡住,出结果后才恢复
wyhaya
   52
wyhaya  
OP
   2023 年 9 月 11 日
@xiaohundun autofetch? 具体来说是啥意思,我有点不明白,是自动获取 表?

@BigBai 你好,由于这个 App 基于 Tauri ,所以它需要基于 Webview 运行,考虑到安装包体积问题,我没将 webview 嵌入到 App 内,Webview2 是在 win10 之后的某个版本之后才内置的,按理里说它应该提示你安装 Webview, 我找个 Windows 再检查检查吧,多谢你。

@JohnSwit
1. 你说的对,在你打开查询的时候,会获取数据库中 所有的 表/列,用于键入提示,应该是由于太多了导致的。
2. 这个我还没做,现在只有 表 / 列 / 关键字 / 函数 / 数据类型 的提示,且不区分语句位置。
3. 现在还没有搜索功能,不过已经在做了。

它会在 连接数据库时/打开查询时 获取 数据库中所有的表和列,并且当你执行查询(非获取数据) 的时候 还会刷新一次,用于更新键入提示的字段,考虑到你有这么多数据,我感觉很危险,为防止造成不必要的错误,建议现在不要再用它了,目前还不稳定,关于你上面所说的问题我都还没考虑到,我会尽快优化一下这些问题,再次感谢!
wyhaya
   53
wyhaya  
OP
   2023 年 9 月 11 日
@JohnSwit > 还有一点,能不能不要自动为我的表名或字段加上 '' 引号?改多几次,就会有很多引号,还得一个一个删掉,而且还会引起语句问题

确实很烦人,加入待办事项!
wyhaya
   54
wyhaya  
OP
   2023 年 9 月 11 日
@faceair 我用的是 Rust 这边的开源的 MySQL 驱动,如果它不支持的话,我估计这很难弄了,我有时间会检查检查。
faceair
   55
faceair  
   2023 年 9 月 11 日 via iPhone
@wyhaya 不是驱动问题,应该是创建完连接以后额外执行了一些 set 语句?这些语句可能不兼容
sub166
   56
sub166  
   2023 年 9 月 11 日
加上 redis ,干翻 datagrip !
russ44
   57
russ44  
   2023 年 9 月 11 日
Cool ,mark
happy32199
   58
happy32199  
   2023 年 9 月 11 日 via iPhone
sql server 怎么显示库? 左侧只能选择 dbo 那些
jorneyr
   59
jorneyr  
   2023 年 9 月 11 日
简单的提几个问题吧 (其实我最近在搞 Web 版的 SQL 编辑器,下面的 | 表示光标):

1. 不支持列补全: "select * from tab t where |",输入 tab. 或者 t. 不会补全列提示。
2. 列乱补全: "select * from tab t where i|",这个时候会把所有表里 i 开头的列都补全提示,而不是只提示 from 的 tab 里的列。
3. 不知道跨 schema 补全提示: "select * from mysql.|",不会提示 mysql 下的表名。
4. 重复补全提示: 例如 id 或者 name 等,会在补全列表里重复出现很多次。
5. 出现不必要的补全提示: "INSERT INTO tab(|)",() 里应该只出现表 tab 的列,其他信息不应该在补全列表里。
jorneyr
   60
jorneyr  
   2023 年 9 月 11 日
下面是已经实现的功能列表,仅供参考:

```
| 功能 | 支持 | 说明 |
| -------------------- | ---- | ------------------------------------------------------------ |
| 数据缓存 | ✅ | Catalog > Schema > Table > Column 的数据都进行了缓存,快速提示,避免重复加载。 |
| 跨 schema 提示 | ✅ | `schema.` 自动提示指定 schema 下的表名。 |
| 表的别名 | ✅ | 可使用表名、表的别名触发列的补全提示。 |
| 创建表的别名 | ✅ | 补全表名的时候,在 `FROM, JOIN, DELETE FROM` 等可以定义别名的地方自动为表名创建别名。 |
| 表名补全 | ✅ | 表名补全支持 2 级: `table`, `schema.table` |
| 列名补全 | ✅ | 列名补全支持 2 级: `column`, `table.column` |
| 自动提示列 | ✅ | 在 `SELECT WHERE ORDER BY` 等子句里补全表名或表的别名时自动插入 `.` 并且自动弹出补全列表。 |
| 自动加载表的列 | ✅ | 例如在 `FROM, JOIN, INSERT INTO` 中补全表名时,表示这个表的列需要被使用,后台自动预先加载相关表的列,在使用列补全的时候数据大多已经准备好可直接提示。 |
| 嵌套子查询 | ✅ | 嵌套子查询中也会感知外部查询涉及到的表,可补全相关表和表的列。 |
| 特殊名字 | ✅ | Oracle 的表名列名支持特殊字符如 `$`,数字开头,补全时会自动使用 `"` 括起来。 |
| 静默加载 | ✅ | 自动从数据库加载需要补全的内容例如表的列,加载完成后会自动触发提示,加载中不强制提示。 |
| 局部加载 | ✅ | 如果要补全 3 个表的列,有 1 个表已经加载 2 个未加载,则会立即提示已加载表的列,另外 2 个表的列静默加载。 |
| 提示分类 | ✅ | 触发时未过滤的情况下根据 column, table, schema, function, keyword, operator 等分类显示。 |
| 提示说明 | ✅ | 提示项的右边会有说明,例如列的类型。 |
| 类型图标 | ✅ | 提示列表中不同的类型使用不同的图标,方便区分,schema, table, column, operator, keyword, function 等都使用不同的图标。 |
| 简单推导 | ✅ | 支持一些简单推导,例如 SELECT 后面需要的列只提示涉及的表名和列,<br />`FROM, JOIN` 后面只需要表名等,`INSERT INTO` 表名后面的括号里只会补全列,`VALUES()` 括号里不进行补全。 |
| SQL 模板插入 | ✅ | 例如补全 BETWEEN 时插入内容为 `(BETWEEN 光标 1 AND 光标 2)`,LIKE 插入 `LIKE '%光标%'` |
| 关键字、函数、运算符 | ✅ | 支持常用的关键字、函数、运算法提示。补全函数时会自动插入括号,例如 `MAX()`。补全函数时补全列表里只有预定义的函数。 |
| 模糊匹配 | ✅ | 提示过滤使用模糊查询,不需要严格匹配。 |
| 快捷键 | ✅ | 快捷键 <kbd>CTRL+;</kbd> 触发补全提示。 |
| 临时表 | ❌ | 不支持临时表的列补全。 |
```
happy32199
   61
happy32199  
   2023 年 9 月 11 日 via iPhone
支持!建议界面在 navacit 基础上优化 重点是界面!!!
我一般要同时连好几个库
dbeaver 和 hedisql 界面太丑了 也不方便操作 存储过程执行也有 bug
袋鼠不支持 sql server 界面相比 navacit 也不是很好
x2ve
   62
x2ve  
   2023 年 9 月 11 日 via iPhone
一直用的 dbeaver ,不过楼主这个界面看着好看点
wm5d8b
   63
wm5d8b  
   2023 年 9 月 12 日 via Android
能支持 arm64 的 Linux 吗
22092
   64
22092  
   2023 年 9 月 12 日
希望 MSSQL Connections 支持 Hostname & path
ABCSVR\MSSQL21
xiaohundun
   65
xiaohundun  
   2023 年 9 月 12 日
@wyhaya 就是自动获取表数据,另外 run all sql 闪退,M1
zoharSoul
   66
zoharSoul  
   2023 年 9 月 12 日
@happy32199 #61 反对, 根本不需要 navicat 那么多功能, 存储过程什么的不需要!!!
保持现在轻量就很好
wyhaya
   67
wyhaya  
OP
   2023 年 9 月 12 日
@jorneyr 感谢,我目前的实现没有考虑到这么多,现在只有简单的提示 表/列/数据类型/关键字等,且不区分语句位置(在哪都可以提示) ,你提出的这个列表功能,我在后续会尽量加入。

@happy32199 感谢,我记下了。

@wm5d8b linux arm64 是我一直想加的,但是现在 tauri 还不支持构建 arm64 的 AppImage ,上游应该有点问题,我还没仔细研究。

@22092 上上一版有,目前这个版本中我给删掉了,还有点 BUG 我没解决,后续会再加上。

@xiaohundun 老哥,能联系一下吗? 我建了个群: https://t.me/dataflare
qingRider
   68
qingRider  
   2023 年 9 月 12 日
我现在就想要个 redis 的工具,建议先做单一功能,要么 mysql ,要么 redis ,现在 redis 好工具很少,我有 datagrip 全家桶,所以用处不大。
wyhaya
   69
wyhaya  
OP
   2023 年 9 月 12 日
@qingRider 目前支持的数据库都实现起来都大体相同,所以基本上没什么需要单独处理的地方,而 Redis 和 MongoDB 这种的,需要有独立的 UI 和操作了,目前都没做,但是我很想做
JYii
   70
JYii  
   2023 年 9 月 12 日
试用发现个问题,有个 MySQL 里面库很多,发现在写 sql 时索引一些列名会卡住
wyhaya
   71
wyhaya  
OP
   2023 年 9 月 12 日
@JYii 多谢
lizhenda
   72
lizhenda  
   2023 年 9 月 12 日
做的确实不错,不过 tauri 还是不太合适做商业产品,界面对比 Electron 体验上明显卡很多。
miaomiao2014
   73
miaomiao2014  
   2023 年 9 月 13 日
不错,我也来体验下吧。
cyanten
   74
cyanten  
   2023 年 9 月 13 日
后继有上线移动端的计划吗? AppStore 上的数据库没一个好用的,tableplus 还是有点贵的
wyhaya
   75
wyhaya  
OP
   2023 年 9 月 14 日
@cyanten 暂时还没有,我想先把电脑端做好
HiramWong
   76
HiramWong  
   2023 年 9 月 14 日
活动监视器看是启了本地一个端口,实际资源占用率有点偏高,待提升
同时希望加入中文
wyhaya
   77
wyhaya  
OP
   2024 年 1 月 15 日
@marcong95 现在支持 SQLCipher 了
marcong95
   78
marcong95  
   2024 年 1 月 15 日
@wyhaya 赞,我去试试~~
Jagg3r
   79
Jagg3r  
   2024 年 3 月 19 日
好像 x86 版安装过程中需要下载依赖?有没有完整的安装包,因为必须要离线安装。。
joewp
   80
joewp  
   2024 年 6 月 6 日
怎么查看表和字段的备注
wyhaya
   81
wyhaya  
OP
   2024 年 6 月 7 日
@joewp 现在还没有,不过会尽快加上。
爱意满满的作品展示区。
© 2026 V2EX · 217ms · 3.9.8.5