Closed hieyou1 closed 4 years ago
This is my init.js:
const sleep = (time) => { // await sleep(time in s), basically python sleep but async
return new Promise((resolve, reject) => {
try {
setTimeout(resolve, time * 1000);
} catch (err) {
reject(err);
}
});
};
const main = async () => {
console.log("Starting up...");
const level = require("level");
const index = require("./index.js");
var loaded = 0;
var dbs = {};
await sleep(5);
level('server/ldb', {}, (err, db) => {
if (err) throw err;
if (!db.supports.permanence) {
console.log(db.supports);
throw new Error("Permanence required");
}
dbs.db = db;
loaded++;
if (loaded == 2) index(dbs.db, dbs.cldb);
});
await sleep(5);
level("server/cldb", {}, (err, db) => {
if (err) throw err;
if (!db.supports.permanence) {
console.log(db.supports);
throw new Error("Permanence required");
}
dbs.cldb = db;
loaded++;
if (loaded == 2) index(dbs.db, dbs.cldb);
});
};
main();
@hieyou1 when using the level
package you should not need to check for permanence since the default behavior is to persist data to disk. I'm not sure why the check isn't working though, it looks like it was added here: https://github.com/Level/leveldown/blob/4ad16de14eedc17c2d59ec5a9848a3e2a65a032f/leveldown.js#L19
@hieyou1 Which version of level
do you have? You need v6.
@vweevers That's the problem-- was using 5.0.1. npm i level gave me v5.0.1, npm i level@latest gave me v6.0.0. Thanks!!!
Hi everyone, Thanks for reading to my issue in advance! When I boot up two LevelDBs in a Node.js file and wait for them to open using a callback, my db.supports doesn't include permanence. Is there something I can do to forcibly make it permanent? After all, my database is a user account database, and it can't be stored in RAM.