ディスクにフラッシュしない sqlite3 に問題があります。私が使用しているコードは以下のとおりです。ファイルリストの合計は 470k を超えており、プログラムは数ギガバイトのメモリを使用する傾向があります。プログラムの実行中、test.db は 0 バイトであり、ジャーナルは使用されません。が実行されているときにのみ、ディスクへの書き込みが開始されます db.close()
。
var fs = require('fs');
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('test.db');
db.serialize(function () {
db.run("BEGIN;");
db.run("CREATE TABLE if not exists Files (name TEXT);");
db.run("COMMIT;");
var files = fs.readdirSync("./files/");
console.log("File list completed: " + files.length);
for (var i = 0; i < files.length; i++) {
db.run("INSERT INTO Files VALUES (?);",files[i]);
}
});
db.close();
削除しようとしましdb.run("BEGIN;");
た db.run("COMMIT;");
が、役に立ちません。
バグ?
これを github のバグとして報告しています