refactor: Link ownership-costs to documents feature (#29) #30

Merged
egullickson merged 5 commits from issue-29-link-ownership-costs into main 2026-01-15 01:23:57 +00:00
Showing only changes of commit 025ab30726 - Show all commits

View File

@@ -0,0 +1,33 @@
-- Migration: Alter ownership_costs table to match updated schema
-- Issue: #29
-- Description: Fix schema mismatch - rename columns, add notes, update constraints
-- Rename columns to match code expectations
ALTER TABLE ownership_costs RENAME COLUMN start_date TO period_start;
ALTER TABLE ownership_costs RENAME COLUMN end_date TO period_end;
-- Make period_start nullable (was NOT NULL as start_date)
ALTER TABLE ownership_costs ALTER COLUMN period_start DROP NOT NULL;
-- Drop interval column (no longer used in new schema)
ALTER TABLE ownership_costs DROP COLUMN IF EXISTS interval;
-- Add notes column
ALTER TABLE ownership_costs ADD COLUMN IF NOT EXISTS notes TEXT;
-- Update description column type to match new schema
ALTER TABLE ownership_costs ALTER COLUMN description TYPE VARCHAR(200);
-- Drop old check constraints
ALTER TABLE ownership_costs DROP CONSTRAINT IF EXISTS chk_ownership_costs_type;
ALTER TABLE ownership_costs DROP CONSTRAINT IF EXISTS chk_ownership_costs_amount_non_negative;
ALTER TABLE ownership_costs DROP CONSTRAINT IF EXISTS chk_ownership_costs_date_range;
ALTER TABLE ownership_costs DROP CONSTRAINT IF EXISTS chk_ownership_costs_interval;
-- Update cost_type column to VARCHAR(32) and add new constraint with additional types
ALTER TABLE ownership_costs ALTER COLUMN cost_type TYPE VARCHAR(32);
ALTER TABLE ownership_costs ADD CONSTRAINT ownership_costs_cost_type_check
CHECK (cost_type IN ('insurance', 'registration', 'tax', 'inspection', 'parking', 'other'));
-- Add amount constraint (amount > 0)
ALTER TABLE ownership_costs ADD CONSTRAINT ownership_costs_amount_check CHECK (amount > 0);