fix: add schema migration for ownership_costs table (refs #29)
All checks were successful
Deploy to Staging / Build Images (pull_request) Successful in 2m21s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 28s
Deploy to Staging / Verify Staging (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 6s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped

The ownership_costs table was created with an outdated schema that had
different column names (start_date/end_date vs period_start/period_end)
and was missing the notes column. This migration aligns the database
schema with the current code expectations.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Eric Gullickson
2026-01-13 21:51:44 -06:00
parent 1d95eba395
commit 025ab30726

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);