现象(P2:新环境日志被 sys_setting "no such table" 刷屏)
2026-08-20 cloud 本地 rig(objectstack 4389fe932),新种子环境的 objectos.log 反复打印(几分钟内数十条):
[sql-driver] DATABASE_ERROR — the backend refused a read on 'sys_setting' (SQLITE_ERROR).
… select * from `sys_setting` where `namespace` = 'localization' and `key` in
('timezone', 'locale', 'currency') and `scope` = 'tenant' limit 10 - no such table: sys_setting
本地化设置读取发生在 sys_setting 表被创建/迁移之前(或该环境根本不会建这张表),每个请求都撞一次,ERROR 级刷屏。
影响
- 功能上大概率无害(读不到就回退默认 locale),但 ERROR 级噪音会淹没真实错误——本次测试里真正致命的
publishPackageDrafts rolled back 行就淹在它中间; - 每请求一次全失败查询也是白花的 IO。
修复建议
三选一:
- 本地化读取前探测表存在(或捕获 no-such-table 降级为一次性的 INFO);
- 把 sys_setting 建表纳入环境首次引导迁移;
- 读取结果(包括"表不存在")做进程内缓存,别每请求重试。
复现
新建环境(不带任何 setting 写入),任意带 kernel 的请求即触发。
现象(P2:新环境日志被 sys_setting "no such table" 刷屏)
2026-08-20 cloud 本地 rig(objectstack
4389fe932),新种子环境的 objectos.log 反复打印(几分钟内数十条):本地化设置读取发生在
sys_setting表被创建/迁移之前(或该环境根本不会建这张表),每个请求都撞一次,ERROR 级刷屏。影响
publishPackageDrafts rolled back行就淹在它中间;修复建议
三选一:
复现
新建环境(不带任何 setting 写入),任意带 kernel 的请求即触发。