我发现sequelize与sqlite的sqlcipher扩展(docs | merged pr)兼容。代码建议在数据库实例上进行身份验证的方法,但我找不到设置密码的方法。
使用sqlite3,可以运行这样的东西:
var sqlite = require('sqlite3);
var db = new sqlite.Database('test.db');
db.serialize(
// some sql commands
);

使用sequelize orm for sqlite我可以创建一个db,但无法获得加密实例:
var Sequelize = require('sequelize');
var db = new Sequelize('test.db', 'username', 'secretAsPragmaKey', {option1: true, option2: false});
db.query(
// some sql
);

我已经尝试在此实例上运行查询以明确将PRAGMA KEY
设置为密码参数,并PRAGMA CIPHER
设置为sqlcipher的默认[aes-256-cfb
],但不是同时使用sequelize。
加密的数据库是否需要存在,而sequelize只是打开它?如果是这样,如何确保键控数据库存在而不插入表?