diff --git a/dependencies.js b/dependencies.js index 586104e..41be8f0 100644 --- a/dependencies.js +++ b/dependencies.js @@ -1,4 +1,40 @@ +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')('mytest.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 diff --git a/sql/create_db.sql b/sql/create_db.sql index 5062c63..b0563a1 100644 --- a/sql/create_db.sql +++ b/sql/create_db.sql @@ -1,4 +1,4 @@ -CREATE TABLE accounts ( +CREATE TABLE IF NOT EXISTS accounts ( number integer NOT NULL, name text NOT NULL, qualifiedName text NOT NULL UNIQUE, @@ -7,14 +7,14 @@ CREATE TABLE accounts ( type TEXT NOT NULL, ); -CREATE TABLE transactions ( +CREATE TABLE IF NOT EXISTS transactions ( transaction_id integer PRIMARY KEY, postingDate text NOT NULL, valueDate text, title text NOT NULL ); -CREATE TABLE transaction_entries ( +CREATE TABLE IF NOT EXISTS transaction_entries ( transaction_id int, account_name text NOT NULL, amount float,