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

48 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Fix: supplement_schedule() — scheduled_at NULL fallback
**Дата:** 2026-04-25
**Файл:** `fr24_worker.py` → функция `supplement_schedule()`
## Проблема
В SQL INSERT `supplement_schedule()` поле `scheduled_at` вычислялось простым CASE-выражением:
```sql
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`:
```sql
-- 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/`).