设置数据范围后,手工在数据库中插入的数据不会正确显示

* 描述问题

  • 通过触发工作流删除的数据,重新插入回表(全部数据,包括ID),
    再设置数据范围后,所有手工在数据库中插入的数据不会正确显示。
  • 表是一个树结构表。
  • 当表里面只剩下手工insert的数据时,界面上会显示这条数据,但是基本字段的数据全部为空,只有关联字段的数据会显示出来。

* 运行环境

  • NocoBase 版本:v1.4.3
  • 数据库种类与版本: MySQL 8.x
  • 操作系统:Windows 11
    -浏览器及版本:Edge最新稳定版
  • 部署方式:Docker
  • Docker 镜像版本:nocobase/nocobase:latest
  • NodeJS 版本:

如何重现

通过将触发工作流删除的数据,重新插入回表(全部数据,包括ID),
在表格区块中任意设置一个数据范围,随意insert一条能匹配数据范围的数据,刷新界面,无法显示刚刚insert的数据,取消掉数据范围后随即又可以显示。

预期行为

数据范围功能能正常过滤数据

截图

日志

找到原因了,在创建树结构表的时候,除了数据本身那张表,系统还会自动创建一张main_${collection_name}_path 的表,所有手工insert的同时,还要insert对应的数据到main_${collection_name}_path 表,感觉这张表是用来保存树的搜索路径用的。

树表还有挺多问题的

对,我也发现了,特别是性能很差