diff options
| author | Joe Carstairs <me@joeac.net> | 2024-10-16 18:22:55 +0100 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2024-10-17 06:55:02 +0100 |
| commit | 7adaace61a4fe983eba5ded3aaaf624ce6fb9014 (patch) | |
| tree | 6e0697f9dbb6e249c60af5a92479a86316c55221 /backend/core/2024-08-31-084439_initial_setup/up.sql | |
| parent | 27b95c9186bd45edd4c982a7cc89cf69cf2c5d46 (diff) | |
Refactors some backend stuff to core lib
Diffstat (limited to 'backend/core/2024-08-31-084439_initial_setup/up.sql')
| -rw-r--r-- | backend/core/2024-08-31-084439_initial_setup/up.sql | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/backend/core/2024-08-31-084439_initial_setup/up.sql b/backend/core/2024-08-31-084439_initial_setup/up.sql new file mode 100644 index 0000000..3584ae7 --- /dev/null +++ b/backend/core/2024-08-31-084439_initial_setup/up.sql @@ -0,0 +1,70 @@ +PRAGMA foreign_keys = ON; + +CREATE TABLE accounts( + id INTEGER NOT NULL PRIMARY KEY, + name TEXT NOT NULL, + opening_balance INTEGER NOT NULL, + opening_date TEXT NOT NULL +); + +CREATE TABLE budget_updates( + id INTEGER NOT NULL PRIMARY KEY, + category_id INTEGER NOT NULL, + date TEXT NOT NULL, + new_budget INTEGER NOT NULL, + new_period INTEGER NOT NULL, + FOREIGN KEY (category_id) + REFERENCES categories (id) + ON UPDATE CASCADE + ON DELETE RESTRICT +); + +CREATE TABLE categories( + id INTEGER NOT NULL PRIMARY KEY, + name TEXT NOT NULL +); + +CREATE TABLE category_transfers( + id INTEGER NOT NULL PRIMARY KEY, + description TEXT NOT NULL, + quantity INTEGER NOT NULL, + from_category_id INTEGER NOT NULL, + to_category_id INTEGER NOT NULL, + FOREIGN KEY (from_category_id) + REFERENCES categories (id) + ON UPDATE CASCADE + ON DELETE RESTRICT, + FOREIGN KEY (to_category_id) + REFERENCES categories (id) + ON UPDATE CASCADE + ON DELETE RESTRICT +); + +CREATE TABLE transactions( + id INTEGER NOT NULL PRIMARY KEY, + description TEXT NOT NULL, + payee TEXT NOT NULL, + quantity INTEGER NOT NULL, + date TEXT NOT NULL, + account_id INTEGER NOT NULL, + FOREIGN KEY (account_id) + REFERENCES accounts (id) + ON UPDATE CASCADE + ON DELETE RESTRICT +); + +CREATE TABLE transaction_categorisations( + id INTEGER NOT NULL PRIMARY KEY, + description TEXT NOT NULL, + quantity INTEGER NOT NULL, + transaction_id INTEGER NOT NULL, + category_id INTEGER NOT NULL, + FOREIGN KEY (transaction_id) + REFERENCES transactions (id) + ON UPDATE CASCADE + ON DELETE RESTRICT, + FOREIGN KEY (category_id) + REFERENCES categories (id) + ON UPDATE CASCADE + ON DELETE RESTRICT +); |
