javascript - 如何配置 Sequelize ORM 以执行序列化查询
问题描述
我正在开发一个电子应用程序,它同时执行诸如插入、删除、更新等写入查询。我使用的是单一威胁数据库 SQLite,因此如果应用程序同时触发多个写入查询,SQLite 数据库将显示错误Database is locked
。那么如何配置 sequelize 来执行序列化查询呢?
const { app } = require('electron')
const { Sequelize } = require('sequelize')
const path = require('path')
const cls = require('cls-hooked')
const namespace = cls.createNamespace('P&C.Beejak')
Sequelize.useCLS(namespace)
const db = new Sequelize({
dialect: 'sqlite',
storage: path.join(app.getPath('userData') + '/database', 'database.db'),
})
module.exports = db
解决方案
使用带有正确隔离方法的事务:https ://sequelize.org/master/manual/transactions.html
// You can overwrite the isolationLevel setting globally with an option in the Sequelize constructor:
const { Sequelize, Transaction } = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:', {
isolationLevel: Transaction.ISOLATION_LEVELS.SERIALIZABLE
});
推荐阅读
- python - xpath() 返回空列表[]
- hyperledger-fabric - 具有多个订购者的超级账本结构设置
- java - 在 Java 中指向文件的公共 Google Drive 链接 - 如何生成它?
- javascript - 如何修复[对象,对象]
- continuous-integration - 本地计算机上的 Go Server 服务启动然后停止
- python - Azure 和签名密钥问题。适用于治疗但不完全适用于python
- php - 如何使用上传器工厂在 magento 2 中上传自定义图像?
- python-3.x - 创建新的自定义字段类型 Odoo
- ios - 尝试在桥接头文件中添加我的帮助程序类时出现错误
- c - libmodbus 函数输出的部分输出打印