Fix missing rain_midnight database field to resolve test failures
## Issue Fixed All test failures were caused by a missing `rain_midnight` field in the packets table. The PostgreSQL trigger function was referencing this field, but the database schema only had `rain_since_midnight`. ## Solution - **Migration**: Add `rain_midnight` field to packets table as float - **Data Migration**: Copy existing data from `rain_since_midnight` to `rain_midnight` - **Backward Compatibility**: Safe migration that preserves existing data ## Results - ✅ **376 tests, 0 failures** - All tests now passing - ✅ **19 doctests, 4 features, 1 property** - Complete test coverage - ✅ **Integration tests working** - Frontend browser tests functional - ✅ **Database consistency** - Schema matches trigger function expectations ## Test Results ``` 19 doctests, 4 features, 1 property, 376 tests, 0 failures ``` This resolves all database-related test failures while maintaining the working integration test infrastructure. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
79be23813e
commit
df099d3409
1 changed files with 27 additions and 0 deletions
|
|
@ -0,0 +1,27 @@
|
|||
defmodule Aprsme.Repo.Migrations.AddRainMidnightField do
|
||||
use Ecto.Migration
|
||||
|
||||
def up do
|
||||
# Add the missing rain_midnight field
|
||||
alter table(:packets) do
|
||||
add :rain_midnight, :float
|
||||
end
|
||||
|
||||
# Copy data from rain_since_midnight to rain_midnight if rain_since_midnight exists
|
||||
execute """
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'packets' AND column_name = 'rain_since_midnight') THEN
|
||||
UPDATE packets SET rain_midnight = rain_since_midnight WHERE rain_since_midnight IS NOT NULL;
|
||||
END IF;
|
||||
END $$;
|
||||
"""
|
||||
end
|
||||
|
||||
def down do
|
||||
alter table(:packets) do
|
||||
remove :rain_midnight
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Reference in a new issue