其他ai的说明:
这个情况是 调用 createDoc 接口返回 code: 0(表示调用成功),但数据库 blocks 表没有新增记录,文档树也看不到,这通常说明文档虽然创建了,但没有被挂载到当前笔记本的文档树,或者创建参数不正确导致它被放在了一个你没注意到的位置。
思源的 blocks 表是内核的 SQLite 数据库,只有当文档被挂载到笔记本并加载到内存时,才会写入 blocks 表。
如果: - 你创建的文档路径不在笔记本目录下
- 或者创建后没有触发笔记本刷新
那么数据库不会立刻更新。
排查步骤
确认笔记本 ID
调用 /api/notebook/lsNotebooks 获取当前笔记本 ID,确保 createDoc 的 notebook 参数正确。 确认路径
{ "notebook": "20240510123456-abc123", "path": "新建文件夹/测试文档.sy", "title": "测试文档", "markdown": "# Hello"}注意 .sy 后缀。 刷新文档树
调用 /api/filetree/refreshTree 或在 UI 手动刷新笔记本,确保新文档挂载。 检查文件系统
到笔记本对应的文件夹(workspace/data/notebook/<notebookId>/)看看是否有新 .sy 文件。如果有文件但 UI 不显示,说明是文档树缓存问题。 检查版本兼容性
某些旧版本 API 返回 code: 0 但实际上没有写入(尤其是路径不合法时)。升级到最新版本可避免。
|