Fix schema
This commit is contained in:
parent
40a299141d
commit
c3a93377d9
@ -15,7 +15,6 @@ type AccountData struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (h *Handler) account(c *gin.Context) {
|
func (h *Handler) account(c *gin.Context) {
|
||||||
|
|
||||||
accountID := c.Param("accountid")
|
accountID := c.Param("accountid")
|
||||||
accountUUID, err := uuid.Parse(accountID)
|
accountUUID, err := uuid.Parse(accountID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
10
postgres/schema/0002_budgets.sql
Normal file
10
postgres/schema/0002_budgets.sql
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
-- +goose Up
|
||||||
|
CREATE TABLE budgets (
|
||||||
|
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
||||||
|
name text NOT NULL,
|
||||||
|
last_modification timestamp with time zone,
|
||||||
|
income_category_id uuid NOT NULL REFERENCES categories (id) DEFERRABLE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- +goose Down
|
||||||
|
DROP TABLE budgets;
|
11
postgres/schema/0003_users.sql
Normal file
11
postgres/schema/0003_users.sql
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
-- +goose Up
|
||||||
|
CREATE TABLE users (
|
||||||
|
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
||||||
|
email text NOT NULL,
|
||||||
|
name text NOT NULL,
|
||||||
|
password text NOT NULL,
|
||||||
|
last_login timestamp with time zone
|
||||||
|
);
|
||||||
|
|
||||||
|
-- +goose Down
|
||||||
|
DROP TABLE users;
|
8
postgres/schema/0004_user_budgets.sql
Normal file
8
postgres/schema/0004_user_budgets.sql
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
-- +goose Up
|
||||||
|
CREATE TABLE user_budgets (
|
||||||
|
user_id uuid NOT NULL REFERENCES users (id) ON DELETE CASCADE,
|
||||||
|
budget_id uuid NOT NULL REFERENCES budgets (id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- +goose Down
|
||||||
|
DROP TABLE user_budgets;
|
10
postgres/schema/0005_accounts.sql
Normal file
10
postgres/schema/0005_accounts.sql
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
-- +goose Up
|
||||||
|
CREATE TABLE accounts (
|
||||||
|
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
||||||
|
budget_id uuid NOT NULL REFERENCES budgets (id) ON DELETE CASCADE,
|
||||||
|
name varchar(50) NOT NULL,
|
||||||
|
on_budget boolean DEFAULT TRUE NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- +goose Down
|
||||||
|
DROP TABLE accounts;
|
9
postgres/schema/0006_payees.sql
Normal file
9
postgres/schema/0006_payees.sql
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
-- +goose Up
|
||||||
|
CREATE TABLE payees (
|
||||||
|
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
||||||
|
budget_id uuid NOT NULL REFERENCES budgets (id) ON DELETE CASCADE,
|
||||||
|
name varchar(50) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- +goose Down
|
||||||
|
DROP TABLE payees;
|
9
postgres/schema/0007_category-groups.sql
Normal file
9
postgres/schema/0007_category-groups.sql
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
-- +goose Up
|
||||||
|
CREATE TABLE category_groups (
|
||||||
|
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
||||||
|
budget_id uuid NOT NULL REFERENCES budgets (id) ON DELETE CASCADE,
|
||||||
|
name varchar(50) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- +goose Down
|
||||||
|
DROP TABLE category_groups;
|
9
postgres/schema/0008_categories.sql
Normal file
9
postgres/schema/0008_categories.sql
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
-- +goose Up
|
||||||
|
CREATE TABLE categories (
|
||||||
|
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
||||||
|
category_group_id uuid NOT NULL REFERENCES category_groups (id) ON DELETE CASCADE,
|
||||||
|
name varchar(50) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- +goose Down
|
||||||
|
DROP TABLE categories;
|
16
postgres/schema/0009_transactions.sql
Normal file
16
postgres/schema/0009_transactions.sql
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-- +goose Up
|
||||||
|
CREATE TABLE transactions (
|
||||||
|
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
||||||
|
date date NOT NULL,
|
||||||
|
memo text NOT NULL,
|
||||||
|
amount decimal(12,2) NOT NULL,
|
||||||
|
account_id uuid NOT NULL REFERENCES accounts (id),
|
||||||
|
category_id uuid REFERENCES categories (id),
|
||||||
|
payee_id uuid REFERENCES payees (id)
|
||||||
|
);
|
||||||
|
ALTER TABLE "transactions" ADD FOREIGN KEY ("account_id") REFERENCES "accounts" ("id");
|
||||||
|
ALTER TABLE "transactions" ADD FOREIGN KEY ("payee_id") REFERENCES "payees" ("id");
|
||||||
|
ALTER TABLE "transactions" ADD FOREIGN KEY ("category_id") REFERENCES "categories" ("id");
|
||||||
|
|
||||||
|
-- +goose Down
|
||||||
|
DROP TABLE transactions;
|
@ -1,66 +0,0 @@
|
|||||||
-- +goose Up
|
|
||||||
CREATE TABLE budgets (
|
|
||||||
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
|
||||||
name text NOT NULL,
|
|
||||||
last_modification timestamp with time zone
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE users (
|
|
||||||
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
|
||||||
email text NOT NULL,
|
|
||||||
name text NOT NULL,
|
|
||||||
password text NOT NULL,
|
|
||||||
last_login timestamp with time zone
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE user_budgets (
|
|
||||||
user_id uuid NOT NULL REFERENCES users (id) ON DELETE CASCADE,
|
|
||||||
budget_id uuid NOT NULL REFERENCES budgets (id) ON DELETE CASCADE
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE accounts (
|
|
||||||
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
|
||||||
budget_id uuid NOT NULL REFERENCES budgets (id) ON DELETE CASCADE,
|
|
||||||
name varchar(50) NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE payees (
|
|
||||||
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
|
||||||
budget_id uuid NOT NULL REFERENCES budgets (id) ON DELETE CASCADE,
|
|
||||||
name varchar(50) NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE category_groups (
|
|
||||||
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
|
||||||
budget_id uuid NOT NULL REFERENCES budgets (id) ON DELETE CASCADE,
|
|
||||||
name varchar(50) NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE categories (
|
|
||||||
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
|
||||||
category_group_id uuid NOT NULL REFERENCES category_groups (id) ON DELETE CASCADE,
|
|
||||||
name varchar(50) NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE transactions (
|
|
||||||
id uuid DEFAULT uuid_generate_v4() PRIMARY KEY,
|
|
||||||
date date NOT NULL,
|
|
||||||
memo text NOT NULL,
|
|
||||||
amount decimal(12,2) NOT NULL,
|
|
||||||
account_id uuid NOT NULL REFERENCES accounts (id),
|
|
||||||
category_id uuid REFERENCES categories (id),
|
|
||||||
payee_id uuid REFERENCES payees (id)
|
|
||||||
);
|
|
||||||
ALTER TABLE "transactions" ADD FOREIGN KEY ("account_id") REFERENCES "accounts" ("id");
|
|
||||||
ALTER TABLE "transactions" ADD FOREIGN KEY ("payee_id") REFERENCES "payees" ("id");
|
|
||||||
ALTER TABLE "transactions" ADD FOREIGN KEY ("category_id") REFERENCES "categories" ("id");
|
|
||||||
|
|
||||||
-- +goose Down
|
|
||||||
DROP TABLE transactions;
|
|
||||||
DROP TABLE accounts;
|
|
||||||
DROP TABLE payees;
|
|
||||||
DROP TABLE categories;
|
|
||||||
DROP TABLE category_groups;
|
|
||||||
DROP TABLE user_budgets;
|
|
||||||
DROP TABLE budgets;
|
|
||||||
DROP TABLE users;
|
|
@ -1,14 +0,0 @@
|
|||||||
-- +goose Up
|
|
||||||
ALTER TABLE budgets ADD COLUMN income_category_id uuid NULL REFERENCES categories (id);
|
|
||||||
UPDATE budgets
|
|
||||||
SET income_category_id = (
|
|
||||||
SELECT categories.id
|
|
||||||
FROM categories
|
|
||||||
LEFT JOIN category_groups ON category_groups.id = categories.category_group_id
|
|
||||||
WHERE categories.name = 'Ready to Assign'
|
|
||||||
AND category_groups.budget_id = budgets.id
|
|
||||||
);
|
|
||||||
ALTER TABLE budgets ALTER COLUMN income_category_id SET NOT NULL;
|
|
||||||
|
|
||||||
-- +goose Down
|
|
||||||
ALTER TABLE budgets DROP COLUMN income_category_id;
|
|
@ -1,5 +0,0 @@
|
|||||||
-- +goose Up
|
|
||||||
ALTER TABLE accounts ADD COLUMN on_budget boolean DEFAULT TRUE NOT NULL;
|
|
||||||
|
|
||||||
-- +goose Down
|
|
||||||
ALTER TABLE accounts DROP COLUMN on_budget;
|
|
Loading…
x
Reference in New Issue
Block a user