41 lines
917 B
JavaScript
41 lines
917 B
JavaScript
const fs = require('fs');
|
|
|
|
const databaseFile = "mytest.db"
|
|
|
|
fs.readFile(databaseFile, (err, data) => {
|
|
if (err) {
|
|
fs.openSync(databaseFile, 'w');
|
|
}
|
|
})
|
|
// DB
|
|
const db = require('better-sqlite3')(databaseFile);
|
|
|
|
// Bootstrap the db
|
|
db.exec(`
|
|
CREATE TABLE IF NOT EXISTS accounts (
|
|
number integer NOT NULL,
|
|
name text NOT NULL,
|
|
qualifiedName text NOT NULL UNIQUE,
|
|
parentAccount text,
|
|
description text NOT NULL,
|
|
type TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS transactions (
|
|
transaction_id integer PRIMARY KEY,
|
|
postingDate text NOT NULL,
|
|
valueDate text,
|
|
title text NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS transaction_entries (
|
|
transaction_id int,
|
|
account_name text NOT NULL,
|
|
amount float,
|
|
label text,
|
|
FOREIGN KEY (transaction_id) REFERENCES transactions (transaction_id) FOREIGN KEY (account_name) REFERENCES accounts (qualifiedName) PRIMARY KEY (transaction_id, account_name)
|
|
);
|
|
`)
|
|
|
|
module.exports = db
|