Limbo数据库文件未保存表和数据的问题求助
Limbo数据库文件未保存表和数据的问题求助
各位大佬好,我最近在用Limbo搭配ntex做后端开发,碰到了个棘手的问题:明明代码里写了创建表和插入数据的逻辑,但数据库文件里完全没保存这些表结构和数据,折腾好久都没搞定,先把我的部分代码贴出来给大家看看:
use ntex::{web, web::types::State}; use serde_json::{Map, Value as JsonValue}; use limbo::{Builder, Connection, value::Value, Error as LimboError}; use std::{future::Future, env::set_var}; use bb8::{ManageConnection, Pool}; use log::error; struct LimboConnectionManager { db: limbo::Database, } impl LimboConnectionManager { async fn new(path: &str) -> Self { let db = Builder::new_local(path).build().await.unwrap(); Self { db } } }
目前我怀疑是不是漏了什么持久化关键步骤?比如Limbo本地数据库是不是需要手动触发保存操作?或者连接池的使用方式有问题,导致操作没同步到磁盘?
想请教下大家有没有遇到过类似问题,或者能给我一些排查方向:
- 是不是操作完成后需要显式调用
flush()或类似方法触发持久化?听说有些嵌入式数据库不会自动实时同步数据到磁盘 - 连接池的连接归还逻辑有没有问题?会不会因为连接没正确释放,导致缓存的数据没写入文件
- 有没有可能是数据库文件的权限问题?比如进程没有写入权限,但代码里用
unwrap()掩盖了相关错误 - 要不要把
unwrap()换成expect()打印更详细的错误信息?说不定初始化或操作时已经有报错,只是被我忽略了
麻烦各位大佬帮忙看看,谢谢啦!
内容来源于stack exchange
相关产品推荐
相关产品推荐

