Files
wiki/tasks/flightradar24/reports/dev-2026-04-25-supplement-fix.md
2026-04-25 00:50:01 +03:00

1.6 KiB
Raw Blame History

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 cpfr24-tracks-fr24:/app/fr24_worker.py
Верификация в контейнере

Примечание: Фактический путь исходников на VM оказался
/home/fr24/projects/fr24/ingest/tracks_fr24/fr24_worker.py
(не tracks_fr24/ в корне projects, как было в задаче, а ingest/tracks_fr24/).