Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ repos:
- id: ruff
args: [--fix]
- id: ruff-format
- repo: https://github.com/sqlfluff/sqlfluff
rev: 3.3.0
hooks:
- id: sqlfluff-fix
args: [--dialect, sqlite]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.14.1
hooks:
Expand Down
158 changes: 76 additions & 82 deletions sqlite_export_for_ynab/ddl/create-tables.sql
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
CREATE TABLE IF NOT EXISTS budgets (id TEXT primary key, name TEXT, last_knowledge_of_server INT)
;
CREATE TABLE IF NOT EXISTS budgets (
id TEXT PRIMARY KEY,
name TEXT,
last_knowledge_of_server INT
);

CREATE TABLE IF NOT EXISTS accounts (
id TEXT primary key,
id TEXT PRIMARY KEY,
budget_id TEXT,
balance INT,
cleared_balance INT,
Expand All @@ -16,36 +19,33 @@ CREATE TABLE IF NOT EXISTS accounts (
note TEXT,
on_budget BOOLEAN,
transfer_payee_id TEXT,
TYPE TEXT,
type TEXT,
uncleared_balance INT,
foreign key (budget_id) references budgets (id)
)
;
FOREIGN KEY (budget_id) REFERENCES budgets (id)
);

CREATE TABLE IF NOT EXISTS account_periodic_values (
DATE TEXT,
"date" TEXT,
name TEXT,
budget_id TEXT,
account_id TEXT,
amount INT,
primary key (DATE, name, budget_id, account_id),
foreign key (budget_id) references budgets (id),
foreign key (account_id) references accounts (id)
)
;
PRIMARY KEY (date, name, budget_id, account_id),
FOREIGN KEY (budget_id) REFERENCES budgets (id),
FOREIGN KEY (account_id) REFERENCES accounts (id)
);

CREATE TABLE IF NOT EXISTS category_groups (
id TEXT primary key,
id TEXT PRIMARY KEY,
budget_id TEXT,
name TEXT,
hidden BOOLEAN,
deleted BOOLEAN,
foreign key (budget_id) references budgets (id)
)
;
FOREIGN KEY (budget_id) REFERENCES budgets (id)
);

CREATE TABLE IF NOT EXISTS categories (
id TEXT primary key,
id TEXT PRIMARY KEY,
budget_id TEXT,
category_group_id TEXT,
category_group_name TEXT,
Expand All @@ -61,32 +61,30 @@ CREATE TABLE IF NOT EXISTS categories (
goal_day INT,
goal_cadence INT,
goal_cadence_frequency INT,
goal_creation_month text,
goal_creation_month TEXT,
goal_target INT,
goal_target_month text,
goal_target_month TEXT,
goal_percentage_complete INT,
goal_months_to_budget INT,
goal_under_funded INT,
goal_overall_funded INT,
goal_overall_left INT,
deleted BOOLEAN,
foreign key (budget_id) references budgets (id),
foreign key (category_group_id) references category_groups (id)
)
;
FOREIGN KEY (budget_id) REFERENCES budgets (id),
FOREIGN KEY (category_group_id) REFERENCES category_groups (id)
);

CREATE TABLE IF NOT EXISTS payees (
id TEXT primary key,
id TEXT PRIMARY KEY,
budget_id TEXT,
name TEXT,
transfer_account_id TEXT,
deleted BOOLEAN,
foreign key (budget_id) references budgets (id)
)
;
FOREIGN KEY (budget_id) REFERENCES budgets (id)
);

CREATE TABLE IF NOT EXISTS transactions (
id TEXT primary key,
id TEXT PRIMARY KEY,
budget_id TEXT,
account_id TEXT,
account_name TEXT,
Expand All @@ -95,7 +93,7 @@ CREATE TABLE IF NOT EXISTS transactions (
category_id TEXT,
category_name TEXT,
cleared TEXT,
DATE TEXT,
"date" TEXT,
debt_transaction_type TEXT,
deleted BOOLEAN,
flag_color TEXT,
Expand All @@ -109,15 +107,14 @@ CREATE TABLE IF NOT EXISTS transactions (
payee_name TEXT,
transfer_account_id TEXT,
transfer_transaction_id TEXT,
foreign key (budget_id) references budgets (id),
foreign key (account_id) references accounts (id),
foreign key (category_id) references categories (id),
foreign key (payee_id) references payees (id)
)
;
FOREIGN KEY (budget_id) REFERENCES budgets (id),
FOREIGN KEY (account_id) REFERENCES accounts (id),
FOREIGN KEY (category_id) REFERENCES categories (id),
FOREIGN KEY (payee_id) REFERENCES payees (id)
);

CREATE TABLE IF NOT EXISTS subtransactions (
id TEXT primary key,
id TEXT PRIMARY KEY,
budget_id TEXT,
amount INT,
category_id TEXT,
Expand All @@ -129,54 +126,51 @@ CREATE TABLE IF NOT EXISTS subtransactions (
transaction_id TEXT,
transfer_account_id TEXT,
transfer_transaction_id TEXT,
foreign key (budget_id) references budget (id),
foreign key (transfer_account_id) references accounts (id),
foreign key (category_id) references categories (id),
foreign key (payee_id) references payees (id),
foreign key (transaction_id) references transaction_id (id)
)
;
FOREIGN KEY (budget_id) REFERENCES budget (id),
FOREIGN KEY (transfer_account_id) REFERENCES accounts (id),
FOREIGN KEY (category_id) REFERENCES categories (id),
FOREIGN KEY (payee_id) REFERENCES payees (id),
FOREIGN KEY (transaction_id) REFERENCES transaction_id (id)
);

CREATE TABLE IF NOT EXISTS scheduled_transactions (
id TEXT primary key,
id TEXT PRIMARY KEY,
budget_id TEXT,
account_id text,
account_name text,
amount int,
category_id text,
category_name text,
date_first text,
date_next text,
deleted boolean,
flag_color text,
flag_name text,
frequency text,
memo text,
payee_id text,
payee_name text,
transfer_account_id text,
foreign key (budget_id) references budgets (id),
foreign key (account_id) references accounts (id),
foreign key (category_id) references categories (id),
foreign key (payee_id) references payees (id),
foreign key (transfer_account_id) references accounts (id)
)
;
account_id TEXT,
account_name TEXT,
amount INT,
category_id TEXT,
category_name TEXT,
date_first TEXT,
date_next TEXT,
deleted BOOLEAN,
flag_color TEXT,
flag_name TEXT,
frequency TEXT,
memo TEXT,
payee_id TEXT,
payee_name TEXT,
transfer_account_id TEXT,
FOREIGN KEY (budget_id) REFERENCES budgets (id),
FOREIGN KEY (account_id) REFERENCES accounts (id),
FOREIGN KEY (category_id) REFERENCES categories (id),
FOREIGN KEY (payee_id) REFERENCES payees (id),
FOREIGN KEY (transfer_account_id) REFERENCES accounts (id)
);

CREATE TABLE IF NOT EXISTS scheduled_subtransactions (
id TEXT primary key,
id TEXT PRIMARY KEY,
budget_id TEXT,
scheduled_transaction_id text,
amount int,
memo text,
payee_id text,
category_id text,
transfer_account_id text,
deleted boolean,
foreign key (budget_id) references budget (id),
foreign key (transfer_account_id) references accounts (id),
foreign key (category_id) references categories (id),
foreign key (payee_id) references payees (id),
foreign key (scheduled_transaction_id) references transaction_id (id)
)
;
scheduled_transaction_id TEXT,
amount INT,
memo TEXT,
payee_id TEXT,
category_id TEXT,
transfer_account_id TEXT,
deleted BOOLEAN,
FOREIGN KEY (budget_id) REFERENCES budget (id),
FOREIGN KEY (transfer_account_id) REFERENCES accounts (id),
FOREIGN KEY (category_id) REFERENCES categories (id),
FOREIGN KEY (payee_id) REFERENCES payees (id),
FOREIGN KEY (scheduled_transaction_id) REFERENCES transaction_id (id)
);
30 changes: 10 additions & 20 deletions sqlite_export_for_ynab/ddl/drop-tables.sql
Original file line number Diff line number Diff line change
@@ -1,29 +1,19 @@
DROP TABLE IF EXISTS budgets
;
DROP TABLE IF EXISTS budgets;

DROP TABLE IF EXISTS accounts
;
DROP TABLE IF EXISTS accounts;

DROP TABLE IF EXISTS account_periodic_values
;
DROP TABLE IF EXISTS account_periodic_values;

DROP TABLE IF EXISTS category_groups
;
DROP TABLE IF EXISTS category_groups;

DROP TABLE IF EXISTS categories
;
DROP TABLE IF EXISTS categories;

DROP TABLE IF EXISTS payees
;
DROP TABLE IF EXISTS payees;

DROP TABLE IF EXISTS transactions
;
DROP TABLE IF EXISTS transactions;

DROP TABLE IF EXISTS subtransactions
;
DROP TABLE IF EXISTS subtransactions;

DROP TABLE IF EXISTS scheduled_transactions
;
DROP TABLE IF EXISTS scheduled_transactions;

DROP TABLE IF EXISTS scheduled_subtransactions
;
DROP TABLE IF EXISTS scheduled_subtransactions;
12 changes: 6 additions & 6 deletions tests/_main_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,13 +126,13 @@ def test_insert_accounts(cur):
"id": ACCOUNT_ID_1,
"budget_id": BUDGET_ID_1,
"name": ACCOUNTS[0]["name"],
"TYPE": ACCOUNTS[0]["type"],
"type": ACCOUNTS[0]["type"],
},
{
"id": ACCOUNT_ID_2,
"budget_id": BUDGET_ID_1,
"name": ACCOUNTS[1]["name"],
"TYPE": ACCOUNTS[1]["type"],
"type": ACCOUNTS[1]["type"],
},
]

Expand All @@ -142,14 +142,14 @@ def test_insert_accounts(cur):
"account_id": ACCOUNT_ID_1,
"budget_id": BUDGET_ID_1,
"name": "debt_escrow_amounts",
"DATE": "2024-01-01",
"date": "2024-01-01",
"amount": 160000,
},
{
"account_id": ACCOUNT_ID_1,
"budget_id": BUDGET_ID_1,
"name": "debt_interest_rates",
"DATE": "2024-02-01",
"date": "2024-02-01",
"amount": 5000,
},
]
Expand Down Expand Up @@ -238,13 +238,13 @@ def test_insert_transactions(cur):
{
"id": TRANSACTION_ID_1,
"budget_id": BUDGET_ID_1,
"DATE": "2024-01-01",
"date": "2024-01-01",
"amount": -10000,
},
{
"id": TRANSACTION_ID_2,
"budget_id": BUDGET_ID_1,
"DATE": "2024-02-01",
"date": "2024-02-01",
"amount": -15000,
},
]
Expand Down
Loading