错误修复
- 首次打开 BlueNova 创建项目后,点击项目名无法进入的问题已修复。(初始化多进程共享数据库判断有问题。)
- 现在可以保存空白查询了。
- 在同一个标签内重复执行某个查询,表格没有正确显示的问题已解决。(执行间虽然 state 更新了,但是每行的 key 都是列表索引……)
更改
今后的发布都要要考虑额外的驱动,所以修改了版本的数据库存储、发布流程、R2 的存储方式。Alpha.2 和之前的版本检查更新的时候会报错。
SQL 中的注释指令统一了格式,并支持自动完成。目前的注释指令有:
@stmt
,@param
,@colrender
@stmt name / isquery[=boolean]
@param name / type [/ key=value [; key=value ...]]
@colrender column_name [, column_name ...] / renderer [/ key=value [; key=value ...]]
点击表名后按下 Ctrl+C 可以复制了。
Ctrl+S 保存查询时提示。
删除查询前须确认。
Mssql 的 UNIQUEIDENTIFIER 现在和 MSSQL 数据库的输出一致,而不是按照标准的 UUID 来解析。
解决 Javascript Number 和 Golang int64/uint64 间的精度问题,现在双向的传递都是安全的了。
不再开启隐藏的事务。在 UI 层面的事务支持前,直接使用 DB 来执行玩家的查询。只读的实现由前端根据语句意图来判断。
SQL 中的日期时间参数或者日期时间的单元格修改时,不再需要提供 layout 选项。现在可以直接向后端传递 Javascript Date 对象,转换为 Golang time.Time 提交给驱动。
重新导入已删除的项目时,不在重新分配 ProjectId。
数据库列表以名称排序,之前是创建时间倒序。
新增
开始提供 MacOS X64 支持。
在 SQL 查询中使用注释指令自定义列的渲染方式。int -> bool/datetime/enum; bytes -> uuid/string/bool; 具体格式参见文档:自定义列渲染
Duckdb 支持。改用了marcboeker/go-duckdb,不必再单独安装
libduckdb
。SQLite 和 Duckdb 都支持额外的 JSON 配置。
空白标签页的消息可以配置(全是 Emoji 可能不符合用户的气质)。可以在设置界面关闭和自定义。自定义需要购买授权。
支持更多的 BSON 数据类型。(MongoDB)
在表格中,鼠标放到横向滚动条上面滚动,会触发横向滚动。(默认行为是 Shift+滚轮)
在页签名字导航栏滚动鼠标也会触发横向滚动。
Redis 查询也可以导出了(仅 JSON)。
数据库操作按钮增加了一个 Ping 功能,用于检测连接状态。
结语
关于插件式的数据库驱动功能,最开始使用 UDS 实现,发现了驱动进程重启后的状态同步问题。改向由动态库实现,做的差不多了,又发现在 MacOs 上会报错。 目前暂时不做插件的考虑了,打包 DuckDB 后压缩包大了越 8MB,解压后大了越 30M……我倒是能接受。之后如果支持更多的数据库,还是会考虑 使用 UDS 来实现,毕竟驱动进程奔溃是一件低概率的事情……
希望这个版本是能够胜任日常的简单使用的,至少已提供的功能都没有 Bug。但是自测总是避免不了遗漏,希望大家积极反馈,会赠送一年的授权(需提供邮箱)。