auto-sync: 2026-04-25 00:50:01

This commit is contained in:
Stream
2026-04-25 00:50:01 +03:00
parent d947ef99cf
commit 493993bb00
2 changed files with 56 additions and 6 deletions

View File

@@ -415,12 +415,15 @@ def supplement_schedule(conn, target_date: date) -> int:
ELSE NULL
END AS destination_iata,
NULL AS aircraft_type,
-- scheduled_at: takeoff time for departures, landed for arrivals
CASE
WHEN fa.origin_icao IN ('UUEE','UUDD','UUWW','UUBW')
THEN fa.datetime_takeoff
ELSE fa.datetime_landed
END AS scheduled_at,
-- 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,
fa.datetime_takeoff AS actual_takeoff,
fa.datetime_landed AS actual_landed,
'actual' AS status,

View File

@@ -0,0 +1,47 @@
# 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/`).