1.6 KiB
1.6 KiB
Fix: supplement_schedule() — scheduled_at NULL fallback
Дата: 2026-04-25
Файл: fr24_worker.py → функция supplement_schedule()
Проблема
В SQL INSERT supplement_schedule() поле scheduled_at вычислялось простым CASE-выражением:
CASE
WHEN fa.origin_icao IN ('UUEE','UUDD','UUWW','UUBW')
THEN fa.datetime_takeoff
ELSE fa.datetime_landed
END AS scheduled_at
Если datetime_takeoff и datetime_landed оба NULL — поле получало NULL, что ломало логику расчёта задержек.
Исправление
Обёрнуто в COALESCE с fallback на fa.first_seen:
-- scheduled_at: takeoff time for departures, landed for arrivals; fallback to first_seen
COALESCE(
CASE
WHEN fa.origin_icao IN ('UUEE','UUDD','UUWW','UUBW')
THEN fa.datetime_takeoff
ELSE fa.datetime_landed
END,
fa.first_seen
) AS scheduled_at
Деплой
| Шаг | Статус |
|---|---|
| Локальный файл отредактирован | ✅ |
VM /home/fr24/projects/fr24/ingest/tracks_fr24/fr24_worker.py обновлён |
✅ |
docker cp → fr24-tracks-fr24:/app/fr24_worker.py |
✅ |
| Верификация в контейнере | ✅ |
Примечание: Фактический путь исходников на VM оказался
/home/fr24/projects/fr24/ingest/tracks_fr24/fr24_worker.py
(неtracks_fr24/в корне projects, как было в задаче, аingest/tracks_fr24/).