update money tracker
All checks were successful
Test and deploy staging / staging (push) Successful in 30s
All checks were successful
Test and deploy staging / staging (push) Successful in 30s
This commit is contained in:
@@ -35,10 +35,16 @@ try {
|
||||
(select count(*) from information_schema.tables
|
||||
where table_schema = 'public' and table_name in (
|
||||
'money_accounts', 'money_transactions', 'money_recurring', 'money_forecasts',
|
||||
'money_utility_settings', 'money_utility_readings', 'money_wishlist', 'money_insurances'
|
||||
'money_utility_settings', 'money_utility_readings', 'money_wishlist', 'money_insurances',
|
||||
'money_projection_settings'
|
||||
)) as money_tables,
|
||||
(select count(*) from information_schema.columns
|
||||
where table_name = 'money_utility_settings' and column_name = 'billing_start') as money_billing_start
|
||||
where table_name = 'money_utility_settings' and column_name = 'billing_start') as money_billing_start,
|
||||
(select count(*) from information_schema.columns
|
||||
where (table_name = 'money_accounts' and column_name = 'kind')
|
||||
or (table_name = 'money_recurring' and column_name in ('starts_on', 'ends_on'))
|
||||
or (table_name = 'money_wishlist' and column_name = 'priority')
|
||||
or (table_name = 'money_projection_settings' and column_name = 'include_recurring')) as money_projection_columns
|
||||
`;
|
||||
if (
|
||||
!Number(schema.user_role) ||
|
||||
@@ -49,8 +55,9 @@ try {
|
||||
!schema.list_completions ||
|
||||
!Number(schema.topic_link_id) ||
|
||||
Number(schema.animal_serial_ids) !== 3 ||
|
||||
Number(schema.money_tables) !== 8 ||
|
||||
!Number(schema.money_billing_start)
|
||||
Number(schema.money_tables) !== 9 ||
|
||||
!Number(schema.money_billing_start) ||
|
||||
Number(schema.money_projection_columns) !== 5
|
||||
) {
|
||||
throw new Error(
|
||||
'Required migrations or Animaldex ID conversion have not been applied to this database'
|
||||
|
||||
@@ -3,11 +3,13 @@ CREATE TABLE IF NOT EXISTS money_accounts (
|
||||
user_id text NOT NULL REFERENCES "user"(id) ON DELETE CASCADE,
|
||||
name text NOT NULL,
|
||||
opening_balance_cents integer NOT NULL DEFAULT 0,
|
||||
kind text NOT NULL DEFAULT 'spendable',
|
||||
created_at timestamptz NOT NULL DEFAULT now(),
|
||||
updated_at timestamptz NOT NULL DEFAULT now(),
|
||||
UNIQUE (user_id, name)
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS money_accounts_user_id_idx ON money_accounts (user_id);
|
||||
ALTER TABLE money_accounts ADD COLUMN IF NOT EXISTS kind text NOT NULL DEFAULT 'spendable';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS money_transactions (
|
||||
id serial PRIMARY KEY,
|
||||
@@ -28,11 +30,15 @@ CREATE TABLE IF NOT EXISTS money_recurring (
|
||||
name text NOT NULL,
|
||||
amount_cents integer NOT NULL,
|
||||
cadence text NOT NULL,
|
||||
starts_on date,
|
||||
ends_on date,
|
||||
account_id integer REFERENCES money_accounts(id) ON DELETE SET NULL,
|
||||
created_at timestamptz NOT NULL DEFAULT now(),
|
||||
updated_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS money_recurring_user_id_idx ON money_recurring (user_id);
|
||||
ALTER TABLE money_recurring ADD COLUMN IF NOT EXISTS starts_on date;
|
||||
ALTER TABLE money_recurring ADD COLUMN IF NOT EXISTS ends_on date;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS money_forecasts (
|
||||
id serial PRIMARY KEY,
|
||||
@@ -75,11 +81,28 @@ CREATE TABLE IF NOT EXISTS money_wishlist (
|
||||
user_id text NOT NULL REFERENCES "user"(id) ON DELETE CASCADE,
|
||||
name text NOT NULL,
|
||||
estimated_cents integer,
|
||||
priority integer NOT NULL DEFAULT 3,
|
||||
notes text,
|
||||
created_at timestamptz NOT NULL DEFAULT now(),
|
||||
updated_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS money_wishlist_user_id_idx ON money_wishlist (user_id);
|
||||
ALTER TABLE money_wishlist ADD COLUMN IF NOT EXISTS priority integer NOT NULL DEFAULT 3;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS money_projection_settings (
|
||||
id serial PRIMARY KEY,
|
||||
user_id text NOT NULL UNIQUE REFERENCES "user"(id) ON DELETE CASCADE,
|
||||
investment_account_id integer REFERENCES money_accounts(id) ON DELETE SET NULL,
|
||||
reserve_cents integer NOT NULL DEFAULT 100000,
|
||||
annual_return_percent numeric(5, 2) NOT NULL DEFAULT 5.00,
|
||||
contribution_mode text NOT NULL DEFAULT 'excess',
|
||||
include_recurring integer NOT NULL DEFAULT 1,
|
||||
fixed_monthly_cents integer NOT NULL DEFAULT 0,
|
||||
end_date date,
|
||||
created_at timestamptz NOT NULL DEFAULT now(),
|
||||
updated_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
ALTER TABLE money_projection_settings ADD COLUMN IF NOT EXISTS include_recurring integer NOT NULL DEFAULT 1;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS money_insurances (
|
||||
id serial PRIMARY KEY,
|
||||
|
||||
Reference in New Issue
Block a user