diff options
Diffstat (limited to 'src/db.js')
-rw-r--r-- | src/db.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/db.js b/src/db.js new file mode 100644 index 0000000..e735ab1 --- /dev/null +++ b/src/db.js @@ -0,0 +1,45 @@ +const fs = require("node:fs"); +const sqlite = require("./napi-sqlite.node"); + +// const value = 8; +// console.log(`${value} time 2 =`, sqlite.my_function(value)); + +const CONFIG_FILE = __dirname + "/sql/config.sql"; +const MIGRATIONS_DIR = __dirname + "/sql/migrations/"; + +let db = null; +const init = async () => { + console.log({ + sqlite, + }); + console.log(`sqlite.myfn(2): ${sqlite.myfn(2)}`); + console.log(`sqlite.open(2): ${sqlite.open(2)}`); + /* + const config = fs.readFileSync(CONFIG_FILE, "UTF-8"); + const migrations = fs.readdirSync(MIGRATIONS_DIR, "UTF-8"); + + await exec(config); + await exec(` + CREATE TABLE IF NOT EXISTS migrations ( + filename TEXT PRIMARY KEY + ); + `); + const done = await run(` + SELECT filename FROM migrations; + `); + + // FIXME: sort + const pending = new Set(migrations).difference(new Set(done)); + + await exec("BEGIN TRANSACTION;"); + for (const p of pending) { + await exec(fs.readFileSync(MIGRATIONS_DIR + p, "UTF-8")); + await exec(`INSERT INTO migrations (filename) VALUES (?)`, p); + } + await exec("COMMIT TRANSACTION;"); + */ +}; + +module.exports = { + init, +}; |