资讯详情

资讯详情

Duix.Avatar报SQLite3 can only bind错误?三步定位并解决

Duix.Avatar报SQLite3 can only bind错误三步定位并解决【免费下载链接】Duix-Avatar Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning.项目地址: https://gitcode.com/GitHub_Trending/he/Duix-Avatar在 Duix.Avatar 里保存数字人草稿或克隆模特时客户端可能写入失败并弹出 SQLite3 can only bind numbers, strings, bigints, buffers, and null 报错。这是 SQLite3 数据类型绑定错误的典型症状某个不该是布尔值的字段常见是 voice_id以 false 的形式落进了插入语句。本文带你确认现象、找到根因并按你的情况修好它。先确认你是不是这种情况自查只要30秒。打开客户端日志搜索SQL Run字样日志位于 src/main/logger.js 定义的路径。同时满足这两点就是本文的问题报错原文是 SQLite3 can only bind numbers, strings, bigints, buffers, and null而不是连接失败或内存不足报错发生在保存作品、克隆音色或新建模特这类写库动作的瞬间再检查日志前一条[SQL Run]打印的参数里面能看到false。它对应的列名就是出问题的字段。为什么会这样客户端把本地数据存在biz.db这个 SQLite 文件里路径在用户数据目录代码见 src/main/db/index.js。写库时用的是 better-sqlite3 的绑定接口这个接口只认五种值数字、字符串、bigint、Buffer 和 null。布尔值不在名单里一传就抛错。而 voice_id 在表结构里是整数可代码里存在传false的可能界面没选音色时值可能以假值形式一路传到 saveVideo最后进了 INSERT 或 UPDATE 语句。所以这个错跟显卡、Docker 服务都无关是客户端本地库的参数类型问题。按你的场景选择修复方式界面还能正常操作时把音色补全再保存适用场景新建作品或克隆模特途中报错客户端界面没卡死。操作返回选择页面选一个已有音色让 voice_id 变成真实数字 ID再保存或删掉这条草稿重新走一遍流程。验证保存成功且日志里没有新的绑定报错。拿不到界面、要手工修数据时改参数值适用场景旧数据里残留了 false想不动界面直接修。操作从日志里复制出那条 SQL 的参数把其中的false换成 null再执行一次对应写入字段定义参考 src/main/db/sql.js。验证原报错消失日志里的[SQL Run]参数不再出现布尔值。怀疑环境本身有问题时备份后重建客户端适用场景你刚升级过版本或库文件疑似损坏。操作先备份用户数据目录里的biz.db然后重新构建客户端数据库初始化会重跑 src/main/db/sql.js 里的版本升级脚本。验证打开客户端、新建并保存一条数据不报错且旧数据仍在确认无误后再删备份。以后别再踩这个坑在写库入口加参数校验在 src/main/db/index.js 包装的 run 函数里拦一下typeof value boolean命中就抛带字段名的可读错误而不是让 SQLite 报一句笼统的话。升级前看一眼版本脚本每次升级对照 src/main/db/sql.js 里的版本升级项确认新字段如 voice_id有合理默认值不会落到布尔值上。报错先抄日志再提问把[SQL Run]那行的完整 SQL 和参数原样贴出来比截图快得多排查的人一眼就能看到哪个参数是 false。到这里问题闭环了确认现象、定位字段、修好数据。后续遇到别的环境问题先看 doc/常见问题.md 的自查步骤所有写库逻辑集中在 src/main/db/ 与 src/main/dao/照着日志里的 SQL 语句就能找到对应代码。【免费下载链接】Duix-Avatar Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning.项目地址: https://gitcode.com/GitHub_Trending/he/Duix-Avatar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →