Node Sequelize with sqlcipher SQLITE_NOMEM 错误

问题描述 投票:0回答:0

每当我尝试在我的节点项目中使用 Sequelize 和 sqlcipher 更新记录时,我都会遇到内存不足的错误。

我可以毫无问题地连接并从我的数据库中获取,但是当我尝试更新时,我总是会收到此错误:

name: 'SequelizeDatabaseError',
parent: [Error: SQLITE_NOMEM: out of memory] 

尝试运行的查询是通过主键 id 查询进行的基本更新。表中只有 80 条记录。还有一张表有大约 400 条记录,但数据库的总文件大小只有 400kb

'UPDATE `Phones` SET `deviceUuid`=$1,`userId`=$2,`updatedAt`=$3 WHERE `id` = $4'

我试过以下方法:

  • 运行节点时设置
    --max-old-space-size
    标志。
  • 设置
    PRAGMA cache_size
    为 sqlite.
  • 使用 sequelize
    sync()
    创建和构建一个新的数据库,以确保它与我的模型完全匹配,并且我的数据库文件没有任何奇怪的事情发生。
  • 更改更新以尝试更新单个字段。
  • 我已经检查了我的代码是否存在潜在的内存泄漏

项目运行在node 16.16.0上,包如下

node.js sqlite sequelize.js sqlcipher
© www.soinside.com 2019 - 2024. All rights reserved.