prop/priv/repo/migrations
Graham McIntire 1086f52c85
chore: delete dead RTMA + METAR5 code paths
Both RTMA and METAR5 schemas + clients + workers were defined but
never had a consumer. `find_nearest_rtma/3` and `recent_surface_obs/3`
existed in `Microwaveprop.Weather` with zero callers cluster-wide;
RtmaFetchWorker had test coverage but was never enqueued anywhere;
no IEM 5-min ASOS fetcher was ever written. The tables sat empty in
prod and the recalibrate audit was permanently flagging them BROKEN
even though the empty state was the steady state.

Drop the lot — schemas, clients, workers, queue config, Req.Test
stubs, audit checks, and the per-table unique tests in the
observation-changesets suite. New migration drops the now-unreferenced
`rtma_observations` and `metar_5min_observations` tables (both 0
rows in prod). Trim the `:rtma` slot out of `backfill_only_queues`
in runtime.exs so Oban Pro's Smart engine stops trying to manage a
queue with no producer.

Audit thresholds reset on the surviving NARR check: drop the
"WARN < 5000 absolute rows" rule that didn't account for
NarrFetchWorker's 0.13° spatial dedup, and point remediation at
the existing BackfillEnqueueWorker cron instead of the dev-only
`mix narr.backfill` task.

scripts/recalibrate_algo.py: ROW_COUNT_SOURCES + DATA_GAP_SQL +
DATA_GAP_RULES all stop referencing the dropped tables.
2026-05-04 15:09:19 -05:00
..
.formatter.exs initial 2026-03-28 11:28:47 -05:00
20260328172746_create_qsos.exs Add QSO import, solar indices, Oban workers, LiveView UI, and parallel weather import 2026-03-29 13:04:55 -05:00
20260328173025_add_distance_km_to_qsos.exs Add QSO import, solar indices, Oban workers, LiveView UI, and parallel weather import 2026-03-29 13:04:55 -05:00
20260328204648_create_weather_tables.exs Add weather data schema, context, sounding params, and IEM ingestion 2026-03-28 15:57:19 -05:00
20260328211118_create_solar_indices.exs Add QSO import, solar indices, Oban workers, LiveView UI, and parallel weather import 2026-03-29 13:04:55 -05:00
20260329142459_add_oban.exs Add QSO import, solar indices, Oban workers, LiveView UI, and parallel weather import 2026-03-29 13:04:55 -05:00
20260329190247_add_weather_queued_to_qsos.exs Add QsoWeatherEnqueueWorker cron job to auto-fetch weather for new QSOs 2026-03-29 14:11:03 -05:00
20260329204441_create_hrrr_profiles_and_add_hrrr_queued.exs Add HRRR model profile fetching for QSOs 2026-03-29 15:54:22 -05:00
20260329210536_create_terrain_profiles_and_add_terrain_queued.exs Add SRTM terrain path profiles for QSOs 2026-03-29 16:22:29 -05:00
20260329213831_add_submission_fields_to_qsos.exs Add /submit route for user QSO submission 2026-03-29 16:46:35 -05:00
20260330174211_create_commercial_links.exs Add commercial link monitoring via SNMP polling 2026-03-30 13:02:59 -05:00
20260330174511_seed_commercial_links.exs Add commercial link monitoring via SNMP polling 2026-03-30 13:02:59 -05:00
20260330174723_create_commercial_samples.exs Add commercial link monitoring via SNMP polling 2026-03-30 13:02:59 -05:00
20260330180421_add_precipitation_to_surface_observations.exs Add IEM precipitation data to QSO weather pipeline 2026-03-30 13:18:11 -05:00
20260330180721_create_iemre_observations_and_add_iemre_queued.exs Add IEM precipitation data to QSO weather pipeline 2026-03-30 13:18:11 -05:00
20260330182625_ensure_precipitation_columns.exs Fix missing precipitation columns and backfill weather data 2026-03-30 13:27:58 -05:00
20260330182652_backfill_surface_observations_with_precipitation.exs Fix missing precipitation columns and backfill weather data 2026-03-30 13:27:58 -05:00
20260330214829_create_propagation_scores.exs Add CONUS grid definition and propagation score schema 2026-03-30 16:50:06 -05:00
20260331143209_add_propagation_scores_viewport_index.exs Add covering index for map viewport query (6s -> 25ms) 2026-03-31 09:36:36 -05:00
20260331214714_add_point_forecast_index.exs Add forecast sparkline graph to point detail panel 2026-03-31 16:47:52 -05:00
20260401151012_add_training_performance_indexes.exs Integrate ML model into grid worker, QSO search, and UI improvements 2026-04-01 10:14:22 -05:00
20260401154846_partition_hrrr_profiles.exs Rename QSO to Contact in UI, add higher bands, improve submit page 2026-04-01 12:28:24 -05:00
20260401180056_add_flagged_invalid_to_contacts.exs Duct visualization, flag invalid contacts, fix HRRR pruning 2026-04-01 13:09:09 -05:00
20260402170033_replace_enrichment_booleans_with_enums.exs fix enrichment 2026-04-02 15:30:41 -05:00
20260402172332_fix_enrichment_status_from_actual_data.exs Remove unused alias in migration 2026-04-02 12:40:14 -05:00
20260402204809_rename_qsos_to_contacts.exs Rename qsos table to contacts, qso_id to contact_id 2026-04-02 15:52:19 -05:00
20260402212323_add_enrichment_notify_triggers.exs Replace polling with Postgres LISTEN/NOTIFY for live updates 2026-04-02 16:26:22 -05:00
20260404145255_tune_propagation_scores_autovacuum.exs Skip updating unchanged scores to reduce dead tuples, tune autovacuum 2026-04-04 09:53:45 -05:00
20260405001416_add_is_grid_point_to_hrrr_profiles.exs Batch is_grid_point backfill and reduce HRRR workers to 5 2026-04-05 08:06:20 -05:00
20260405001517_add_contacts_pos1_partial_index.exs Database performance fixes and async backfill enqueue 2026-04-04 19:19:18 -05:00
20260407165919_add_era5_profiles_and_rtma_observations.exs Add ERA5 reanalysis and RTMA data sources 2026-04-07 12:04:16 -05:00
20260408145951_create_users_auth_tables.exs Add password auth with callsign + email confirmation 2026-04-08 10:21:40 -05:00
20260408154735_create_beacon_monitors.exs Add beacon monitor registration and fix prod SMTP 2026-04-08 11:30:28 -05:00
20260408163732_add_is_admin_to_users.exs Add is_admin flag, auto-grant to graham@mcintire.me 2026-04-08 11:43:52 -05:00
20260408165341_create_beacons.exs Add /beacons CRUD and /users admin page 2026-04-08 12:01:45 -05:00
20260408174251_rename_beacon_power_to_mw.exs Beacon power in mW, settings tweaks 2026-04-08 12:45:35 -05:00
20260408174719_rename_beacon_height_to_ft.exs Beacon height in feet, auto-fill lat/lon from grid 2026-04-08 12:55:10 -05:00
20260408180611_add_on_the_air_to_beacons.exs Beacon detail map with range estimate and on_the_air flag 2026-04-08 13:29:58 -05:00
20260408192634_add_approved_to_beacons.exs Beacon submission approval workflow 2026-04-08 15:42:32 -05:00
20260408211056_add_keying_to_beacons.exs Add beacon keying field (on/off or FSK) 2026-04-08 16:13:35 -05:00
20260408212103_add_notes_to_beacons.exs Beacon improvements: anon submit, notes, /map nav, admin backfill 2026-04-08 16:23:59 -05:00
20260409135526_add_bearing_and_beamwidth_to_beacons.exs Add beacon bearing, beamwidth, and weak-signal keyings 2026-04-09 08:59:16 -05:00
20260409175343_add_user_id_to_contacts.exs Link submissions to the logged-in user on /submit 2026-04-09 13:01:49 -05:00
20260409191733_add_oban_pro.exs Switch Oban to the Pro Smart engine, rate-limit ERA5 CDS 2026-04-09 14:19:04 -05:00
20260409211647_create_hrrr_native_profiles.exs Phase 1 tasks 1.1-1.5: HRRR native hybrid-sigma ingestion 2026-04-09 16:23:51 -05:00
20260410134532_create_hrrr_climatology.exs Phase 3 spike (parked) + Phase 6: temperature anomaly 2026-04-10 08:47:11 -05:00
20260410134951_create_metar_5min_observations.exs Phase 8: 5-minute METAR ingestion pipeline 2026-04-10 08:53:54 -05:00
20260410200000_create_nexrad_observations.exs Phase 9.3, 9.4, and Phase 3 NEXRAD pipeline 2026-04-10 12:48:36 -05:00
20260411144239_change_beacon_height_ft_to_integer.exs Change beacon height_ft from float to integer 2026-04-11 09:44:42 -05:00
20260411144719_round_beacon_lat_lon_to_6_decimals.exs Round lat/lon to 6 decimals everywhere, add commas to EIRP display 2026-04-11 09:49:12 -05:00
20260411210308_create_contact_edits.exs Add contact edit approval system with admin review queue 2026-04-11 16:15:49 -05:00
20260412173459_add_contacts_inserted_at_desc_index.exs Cache /contacts, fix map blink, make mode optional 2026-04-12 12:47:25 -05:00
20260412174304_make_contacts_mode_nullable.exs Cache /contacts, fix map blink, make mode optional 2026-04-12 12:47:25 -05:00
20260413000000_create_qrz_callsigns_and_callsign_locations.exs Drop gridmap.org dependency, resolve callsigns locally 2026-04-12 17:43:29 -05:00
20260413205533_add_era5_profiles_valid_time_lat_lon_index.exs Speed up ERA5 batch pipeline: parallel CDS + stream downloads + hot index 2026-04-13 16:00:19 -05:00
20260413210544_create_era5_cds_jobs.exs Split ERA5 backfill into submit/poll workers with persistent CDS state 2026-04-13 16:26:26 -05:00
20260414183918_make_propagation_scores_factors_nullable.exs Cut propagation_scores write cost with DELETE+COPY, skip-factors, UNLOGGED 2026-04-14 13:47:35 -05:00
20260414184224_make_propagation_scores_unlogged.exs Cut propagation_scores write cost with DELETE+COPY, skip-factors, UNLOGGED 2026-04-14 13:47:35 -05:00
20260414200607_drop_propagation_scores.exs Drop propagation_scores table, ScoresFile is the only store 2026-04-14 15:13:01 -05:00
20260415193413_create_ionosonde_observations.exs Ionosphere: GIRO ionosonde ingestion (foF2/foEs/hmF2/MUFD) 2026-04-15 14:37:43 -05:00
20260415195208_create_space_weather_observations.exs SpaceWeather: SWPC JSON ingestion (Kp, F10.7, GOES X-ray) 2026-04-15 14:55:24 -05:00
20260416141906_rename_era5_profiles_to_narr_profiles.exs Rename ERA5 → NARR across the codebase 2026-04-16 09:22:23 -05:00
20260416142116_drop_era5_cds_jobs.exs Rename ERA5 → NARR across the codebase 2026-04-16 09:22:23 -05:00
20260416173951_rename_band_3456_to_3400.exs Rename 9cm band 3456 → 3400 2026-04-16 12:40:38 -05:00
20260417140525_normalize_pos_lng_to_lon.exs refactor: normalize pos1/pos2 JSONB key to 'lon' everywhere 2026-04-17 09:10:32 -05:00
20260417141734_create_import_runs.exs feat(import): async CSV import with progress-tracking schema 2026-04-17 09:31:22 -05:00
20260417185030_create_contact_common_volume_radar.exs feat(rainscatter): classify QSO propagation mechanism from common-volume radar 2026-04-17 15:57:59 -05:00
20260418143251_create_propagation_run_timings.exs feat(propagation): record per-forecast-hour chain step timings 2026-04-18 09:36:52 -05:00
20260418163000_add_propagation_mechanism_to_contacts.exs feat(propagation): per-contact mechanism classification 2026-04-18 10:42:08 -05:00
20260418191400_create_gefs_profiles.exs feat(gefs): scaffold extended-horizon forecast ingestion 2026-04-18 14:28:44 -05:00
20260418204008_add_height_ft_to_contacts.exs feat(contacts): antenna height fields feed terrain analysis 2026-04-18 15:48:14 -05:00
20260418223816_add_private_to_contacts.exs feat(contacts): private flag with scope-aware visibility 2026-04-18 17:49:01 -05:00
20260419151243_create_grid_tasks.exs feat(grid-rs): Rust worker for HRRR f01..f18 propagation chain 2026-04-19 15:42:49 -05:00
20260419222624_add_kind_to_grid_tasks.exs feat(grid_tasks): add kind column to split forecast vs analysis work 2026-04-19 17:31:16 -05:00
20260419231502_create_hrrr_fetch_tasks.exs feat(hrrr): route per-QSO enrichment through hrrr_fetch_tasks (Stream C Elixir) 2026-04-19 18:22:22 -05:00
20260421142436_rename_propagation_mechanism_status.exs refactor(contacts): rename propagation_mechanism_status -> mechanism_status 2026-04-21 09:28:37 -05:00
20260421181818_add_hrrr_profiles_valid_time_latlon_index.exs perf(db): add (valid_time, lat, lon) composite index on hrrr[_native]_profiles 2026-04-21 13:20:22 -05:00
20260421220000_tighten_grid_tasks_claim_index.exs perf+hygiene: batch 1 of system-review fixes 2026-04-21 17:06:07 -05:00
20260423155802_add_notes_to_contacts.exs feat(contacts): add free-form notes field 2026-04-23 11:02:27 -05:00
20260424204656_tune_autovacuum_for_high_churn.exs perf(db): tune autovacuum per-table + one-shot ANALYZE helper 2026-04-24 15:48:46 -05:00
20260425210051_add_home_qth_to_users.exs feat(accounts): add home QTH fields to User 2026-04-25 16:02:43 -05:00
20260425210540_create_fixed_stations.exs feat(rover): FixedStation schema with grid-derived lat/lon 2026-04-25 16:26:33 -05:00
20260426180436_create_rover_locations.exs feat(rover-locations): add /rover-locations page with CRUD 2026-04-26 13:08:27 -05:00
20260429220349_create_hrdps_profiles.exs feat(hrdps): hrdps_profiles partitioned table + HrdpsProfile schema 2026-04-29 17:12:41 -05:00
20260429220736_add_source_to_grid_tasks.exs feat(hrdps): grid_tasks source column, Canadian mask, HrdpsGridWorker 2026-04-29 17:13:00 -05:00
20260430142341_oban_pro_v1_7.exs deps: oban_pro 1.6.14 (vendored) → 1.7.0 (hex) 2026-04-30 09:25:11 -05:00
20260503155617_create_rover_planning.exs feat(rover-planning): /rover-planning page with path-profile worker 2026-05-03 11:04:11 -05:00
20260503160908_rename_rover_location_statuses.exs refactor(rover-locations): rename status atoms ideal→good, off_limits→bad 2026-05-03 11:13:18 -05:00
20260503190225_add_multi_band_rover_planning.exs feat(rover-planning): multi-band missions + smart reconcile 2026-05-03 14:08:49 -05:00
20260504135243_create_pskr_spots_hourly.exs feat(pskr): ingest PSK Reporter MQTT firehose for weather correlation 2026-05-04 09:24:20 -05:00
20260504151127_add_flagged_by_user_to_contacts.exs feat(contacts): record + show flagger attribution; admin delete 2026-05-04 10:15:13 -05:00
20260504200705_drop_unused_rtma_metar5_tables.exs chore: delete dead RTMA + METAR5 code paths 2026-05-04 15:09:19 -05:00