写在前面

v1.4.0 加了文档管理,大家反馈还不错。时隔一周,v1.4.1 又来了。

这个版本没有加什么炫酷的新功能,主要是在把之前一些做得不够到位的地方补了补,集中搞了三件事:让 PostgreSQL 用户能用起来把关联字段做完整把导入数据的体验搞好,并同步做了一些使用体验优化。

一、PostgreSQL v13+ 支持:不再是 SQLite 专属

之前 SmartTable 默认用的是 SQLite,虽然轻量方便,但对于正经上线的场景,大家还是希望用 PostgreSQL。毕竟 PostgreSQL 在并发、安全、数据完整性方面要比 SQLite 靠谱得多,特别是对大批量数据的处理能力更强。

此前 SmartTable 也支持 PostgreSQL,但是之前有些问题没有处理好,导致 PostgreSQL 下运行不正常。这次我们把 PostgreSQL 的兼容性问题系统性地修了一遍。主要几个方面:

  • 时区问题

    :PostgreSQL 对时区比较敏感,之前有些 datetime 字段时区没处理好,存进去的数据和读出来的时间对不上。这次把所有 datetime 字段统一改成了带时区的类型。

  • UUID 处理

    :PostgreSQL 的 UUID 类型和 SQLite 不太一样,之前的代码在 PostgreSQL 下会有兼容问题,这次统一做了适配。

现在 PostgreSQL v13 以上的版本都可以正常跑了。

想用 PostgreSQL 的话,调整.env配置环境变量即可:

DATABASE_URL=postgresql://user:password@host:5432/smart_table

您可以使用安装模式或者docker模式来部署 PostgreSQL。另外,PostgreSQL 可以在EnterpriseDB提供的下载页面:

https://www.enterprisedb.com/download-postgresql-binaries

。在这里找到对应平台的PostgreSQL 13以上版本,下载并解压即可。这个版本的 PostgreSQL 支持支持Windows和MacOS下的免安装二进制包。

二、关联字段:终于可以”解除关联”了

关联字段是 SmartTable 里一个很重要的功能——你可以把两个表之间的记录关联起来,比如”订单”关联”客户”,”任务”关联”负责人”。

但之前有个问题:关联上了就解不开了。建错了关联,或者业务变了想把关联断开,没办法。

v1.4.1 加了”解除关联”功能,现在你可以随时断开两条记录之间的关联了。

另外,双向关联也完善了。之前 A 表关联 B 表的时候,B 表那边不一定能同步看到关联信息,现在双向同步更准确了。同时还修了几个关联字段在不同场景下的显示问题。

三、批量导入:一次录一批,不用一条一条加

之前往表里加数据,要么一条一条手动录入,要么用导入功能从 Excel 文件里导。

这次新增了批量导入功能,在数据表里可以直接批量粘贴数据,一次性创建多条记录。对于需要快速录入大量数据的场景(比如从别的地方复制过来的数据),这个功能应该能省不少时间。

四、交互体验上的几个小优化

除了上面几个大块,这次还有一些零零碎碎但是用起来能感觉到变舒服的地方,比如:

时区不用自己配了

之前如果你不手动配置时区,系统展示的时间可能跟你本地时间对不上。现在好了——默认不配时区的情况下,系统会自动用你浏览器的本地时区来显示时间。大部分人开机直接用,不会再遇到时间不对的问题。

其他还有一些小优化,欢迎试用体验。

五、Bug 修复一览

每次版本都会修一批 bug,这次也不例外:

问题

啥情况

PostgreSQL 兼容

修了一堆 PostgreSQL 下才能踩到的坑,现在 v13+ 都能跑

附件文件名显示

附件显示的时候用错了字段,文件名不对,已修正

二级缓存丢数据

大批量请求时偶尔会漏掉部分缓存数据,已修复

.env 路径不对

某些部署方式下 env 文件加载路径有偏差,已修正

终端编码乱码

后端终端输出有编码问题,已搞定

代码逻辑优化

修了几个类型兼容和数据一致性的小问题

时区兼容

datetime 字段统一改成带时区类型,杜绝时区转换错误

批量加载数据异常

修复了大批量加载数据时偶尔会有部分数据缺失的问题

六、SmartTable 是什么?

SmartTable 是一个开源的多维表格管理系统,你可以把它理解为可以自己搭建的 Airtable/飞书多维表格。数据表格、表单收集、仪表盘分析、文档管理,都整合在了一起。

核心特点

数据管理

  • 26 种字段类型:文本、数字、日期、单选多选、附件、关联、公式、自动编号、评分……

  • 6 种视图:表格、看板、日历、甘特图、画廊、表单

  • 支持多级分组、多条件筛选排序

  • Excel 导入创建表(智能识别字段类型)

打开网易新闻 查看精彩图片

打开网易新闻 查看精彩图片

表单收集

  • 公开表单分享(匿名提交、验证码保护)

  • 数据自动写入数据表

打开网易新闻 查看精彩图片

仪表盘

  • 可视化图表组件

  • 多种行业模板

  • 实时数据刷新

打开网易新闻 查看精彩图片

文档管理

  • 富文本编辑 + Markdown

  • PDF 导出 + 版本历史

  • 与数据表权限打通

打开网易新闻 查看精彩图片

协作与安全

  • 多人在线协作

  • JWT 认证、API 限流

  • XSS/SQL 注入防护

打开网易新闻 查看精彩图片

部署

  • Docker 单容器部署(内嵌 Redis)

  • PostgreSQL / SQLite 都支持

  • 跨平台运行

技术栈

层面

用的啥

后端

Python 3.11+、Flask 3.0、SQLAlchemy 2.0、PostgreSQL / SQLite、Redis

前端

Vue 3、TypeScript、Element Plus、Pinia、ECharts、VXE Table

部署

Docker、PyInstaller、Nuitka

七、关注作者

SmartTable 目前是一个个人开源项目,代码完全开源,欢迎 star、fork、提 issue,一起来搞。

如果觉得项目对你有帮助,或者想了解开发背后的故事、技术分享,可以关注作者在这些平台上的账号:

平台

账号 / 地址

GitHub(主仓库)

https://github.com/ldbinac/smart_table t_table

Gitee(国内镜像)

https://gitee.com/binac/smart_table able

程序员吕洞宾

CSDN

程序员吕洞宾

⛏ 稀土掘金

程序员吕洞宾

知乎

程序员吕洞宾

关注不迷路,版本持续迭代中~

八、感谢 OpenTiny 开源社区

特别感谢OpenTiny开源社区(华为出品)对 SmartTable 的特别支持,在最新的OpenTiny官方微信公众号上,分享了SmartTable 的V1.4.0版本( 开源多维表格SmartTable v1.4.0 来啦!这次带来了文档功能) 点击阅读原文可以直接跳转到该公众号文章 。

SmartTable 的文档编辑器使用的是TinyEditor,这是OpenTiny开源社区(华为出品)的一个富文本编辑器组件。

TinyEditor 功能很全面,支持富文本编辑、Markdown 编写、表格处理、国际化配置等,品质和文档都不错。SmartTable 的文档模块能顺利做出来,TinyEditor 功不可没。

如果你对前端组件库感兴趣,可以去 OpenTiny 社区看看,他们除了 TinyEditor,还有一套完整的企业级 UI 组件库,值得关注:

  • GitHub: https:// github.com/opentiny/

  • 官网: https:// opentiny.design/

感谢 OpenTiny 社区的开源贡献,也希望国内的开源生态越来越好