我使用的是nodejs sqlite库(https://github.com/mapbox/node-sqlite3)。如何将内存中的数据库持久化到磁盘?既然在c/c++实现中有备份API,我怎么能用这个库持久化nodejs呢?(或与其他库/机制)
k97glaaz1#
看起来node-sqlite3现在支持备份API(请参阅this test file)。不幸的是,API Documentation自2017年以来一直没有更新,所以很容易错过。看起来最简单的方法是:
var backup = db.backup('test/tmp/backup.db'); backup.step(-1, function(err) { if (err) throw err; backup.finish(function(err) { if (err) throw err; // It finished! }); });
更好的是,sqlite3有它的备份API的文档!那么简单
db.backup(`my-backup.db`) .then(() => { console.log('backup complete!'); }) .catch((err) => { console.log('backup failed:', err); });
waxmsbnn2#
在2016年,using the backup API是唯一的方法。Node.js没有实现这个API。看看Jared的回答。无论如何,只要使用一个普通的磁盘数据库。您可以使用PRAGMA synchronous = OFF使其与内存中的数据库一样不安全。
2条答案
按热度按时间k97glaaz1#
看起来node-sqlite3现在支持备份API(请参阅this test file)。不幸的是,API Documentation自2017年以来一直没有更新,所以很容易错过。
看起来最简单的方法是:
注意:最近推荐better-sqlite3
更好的是,sqlite3有它的备份API的文档!
那么简单
waxmsbnn2#
在2016年,using the backup API是唯一的方法。Node.js没有实现这个API。看看Jared的回答。
无论如何,只要使用一个普通的磁盘数据库。您可以使用PRAGMA synchronous = OFF使其与内存中的数据库一样不安全。