Remove deprecated CSV files and update experiment seeding scripts
- Deleted unused CSV files: 'meyer experiments.csv' and 'phase_2_experimental_run_sheet.csv'. - Updated SQL seed scripts to reflect changes in experiment data structure and ensure consistency with the latest experiment parameters. - Enhanced user role assignments in the seed data to include 'conductor' alongside 'data recorder'. - Adjusted experiment seeding logic to align with the corrected data from the CSV files.
This commit is contained in:
118
management-dashboard-web-app/SEED_DATA_CORRECTIONS.md
Normal file
118
management-dashboard-web-app/SEED_DATA_CORRECTIONS.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# Seed Data Corrections
|
||||
|
||||
## Problem Identified
|
||||
|
||||
The "Schedule Experiment" component was showing "undefined" for soaking duration in the top right panel. This was caused by a mismatch between the database schema and frontend expectations:
|
||||
|
||||
- **Database**: Used `soaking_duration_hours` column
|
||||
- **Frontend**: Expected `soaking_duration_minutes` field
|
||||
- **Seed Files**: Were trying to insert into non-existent `soaking_duration_minutes` column
|
||||
|
||||
## Root Cause
|
||||
|
||||
1. The migration `20250101000004_data_entry_tables.sql` created the `soaking` table with `soaking_duration_hours` column
|
||||
2. The frontend TypeScript interfaces and UI code expected `soaking_duration_minutes`
|
||||
3. The seed files were updated to use `soaking_duration_minutes` but the database schema wasn't updated accordingly
|
||||
4. This caused the frontend to receive `undefined` when trying to access `soaking.soaking_duration_minutes`
|
||||
|
||||
## Solution Implemented
|
||||
|
||||
### 1. Database Schema Fix
|
||||
**File**: `supabase/migrations/20250103000001_fix_soaking_duration_column.sql`
|
||||
- Added `soaking_duration_minutes` INTEGER column
|
||||
- Backfilled data from `soaking_duration_hours * 60`
|
||||
- Updated trigger function to use minutes
|
||||
- Dropped the old `soaking_duration_hours` column
|
||||
|
||||
### 2. Views Update
|
||||
**File**: `supabase/migrations/20250103000002_update_views_for_soaking_minutes.sql`
|
||||
- Updated `experiments_with_phases` view to use `soaking_duration_minutes`
|
||||
- Updated `repetitions_with_phases` view to use `soaking_duration_minutes`
|
||||
|
||||
### 3. Corrected Seed Files
|
||||
|
||||
#### Phase 2 JC Experiments
|
||||
**File**: `supabase/seed_04_phase2_jc_experiments_corrected.sql`
|
||||
- **Experiment Numbers**: 0-19 (matching CSV data, not 1-20)
|
||||
- **Soaking Duration**: Converted from hours to minutes (e.g., 34 hours = 2040 minutes)
|
||||
- **Air Drying Duration**: Used exact values from CSV (19-60 minutes)
|
||||
- **JC Cracker Parameters**: All parameters match CSV data exactly
|
||||
- **Repetitions**: Each experiment has 3 repetitions as specified
|
||||
|
||||
#### Meyer Experiments
|
||||
**File**: `supabase/seed_05_meyer_experiments_corrected.sql`
|
||||
- **Experiment Numbers**: 1-40 (matching CSV data)
|
||||
- **Soaking Duration**: Converted from hours to minutes (e.g., 27 hours = 1620 minutes)
|
||||
- **Air Drying Duration**: Used exact values from CSV (11-56 minutes)
|
||||
- **Meyer Cracker Parameters**: All parameters match CSV data exactly
|
||||
- **Repetitions**: Each experiment has 1 repetition as specified
|
||||
|
||||
## Data Mapping from CSV
|
||||
|
||||
### Phase 2 JC Experiments (phase_2_JC_experimental_run_sheet.csv)
|
||||
- **Unique Experiments**: 20 (numbers 0-19)
|
||||
- **Repetitions per Experiment**: 3
|
||||
- **Soaking Duration Range**: 10-38 hours (600-2280 minutes)
|
||||
- **Air Drying Duration Range**: 10-60 minutes
|
||||
- **Machine Type**: JC Cracker
|
||||
|
||||
### Meyer Experiments (post_workshop_meyer_experiments.csv)
|
||||
- **Unique Experiments**: 40 (numbers 1-40)
|
||||
- **Repetitions per Experiment**: 1
|
||||
- **Soaking Duration Range**: 10-54 hours (600-3240 minutes)
|
||||
- **Air Drying Duration Range**: 11-56 minutes
|
||||
- **Machine Type**: Meyer Cracker
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
### New Migration Files
|
||||
1. `supabase/migrations/20250103000001_fix_soaking_duration_column.sql`
|
||||
2. `supabase/migrations/20250103000002_update_views_for_soaking_minutes.sql`
|
||||
|
||||
### New Seed Files
|
||||
1. `supabase/seed_04_phase2_jc_experiments_corrected.sql`
|
||||
2. `supabase/seed_05_meyer_experiments_corrected.sql`
|
||||
|
||||
## Deployment Instructions
|
||||
|
||||
1. **Run the migrations in order**:
|
||||
```sql
|
||||
-- First fix the column
|
||||
\i supabase/migrations/20250103000001_fix_soaking_duration_column.sql
|
||||
|
||||
-- Then update the views
|
||||
\i supabase/migrations/20250103000002_update_views_for_soaking_minutes.sql
|
||||
```
|
||||
|
||||
2. **Clear existing data and run corrected seeds**:
|
||||
```sql
|
||||
-- Clear existing data (optional, use with caution)
|
||||
DELETE FROM public.experiment_repetitions;
|
||||
DELETE FROM public.jc_cracker_parameters;
|
||||
DELETE FROM public.meyer_cracker_parameters;
|
||||
DELETE FROM public.cracking;
|
||||
DELETE FROM public.airdrying;
|
||||
DELETE FROM public.soaking;
|
||||
DELETE FROM public.experiments;
|
||||
|
||||
-- Run corrected seed files
|
||||
\i supabase/seed_04_phase2_jc_experiments_corrected.sql
|
||||
\i supabase/seed_05_meyer_experiments_corrected.sql
|
||||
```
|
||||
|
||||
## Expected Result
|
||||
|
||||
After applying these changes:
|
||||
- The "Schedule Experiment" component will show correct soaking durations in minutes
|
||||
- All experiment data will match the CSV source files exactly
|
||||
- The database schema will be consistent with frontend expectations
|
||||
- Phase timing calculations will work correctly
|
||||
|
||||
## Verification
|
||||
|
||||
To verify the fix:
|
||||
1. Check that `soaking.soaking_duration_minutes` is populated in the database
|
||||
2. Verify the Schedule Experiment UI shows durations like "2040min" instead of "undefined"
|
||||
3. Confirm experiment numbers match the CSV files (0-19 for JC, 1-40 for Meyer)
|
||||
4. Validate that all machine parameters match the CSV data
|
||||
|
||||
Reference in New Issue
Block a user