fix(ptica): backfill act_date у 11 строк, куда уехала дата Генплана-2004 (#2464) #2984
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2984
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/2464-act-date-backfill"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Зачем отдельная миграция
#2981 починил извлечение даты, но только вперёд. UPSERT загрузчика заканчивается
— не
DO UPDATE. Значит пятничный прогон (0 7 * * fri) наткнётся на конфликт и существующие строки не перезапишет. Без этой миграции 11 строк остались бы с датой 2004 года навсегда: правка выглядела бы сделанной, а данные на проде — кривыми.Что чиним
Замер прода 20.08.2026:
Ровно 9 + 2 = 11 — в точности столько, сколько дал прогон исправленного кода по тем же двум документам.
Верные даты не угаданы: оба PDF загружены с екатеринбург.рф и распознаны тем же трактом, что использует загрузчик (
ocr_pdf_textв прод-контейнере). В обоих настоящее основание — постановление Администрации города:Почему сужение по doc_url обязательно
Без него
UPDATE ... WHERE act_date = '2004-07-06'задел бы любую строку с этой датой, включая те, где 06.07.2004 — настоящая дата акта. Это не гипотетика: 06.07.2004 — реальная дата Решения гордумы, и документ, для которого она законна, вполне может появиться.Миграция идемпотентна: при повторе условие
act_date = '2004-07-06'уже не выполнится.Как проверено
Тест герметичный и прогоняет тело миграции целиком (а не переписанный от руки UPDATE) на временной копии таблицы в прод-форме: 9 строк развязки + 2 Энергостроителей + две контрольные посторонние.
test_without_the_migration_rows_stay_wrong: без прогона миграции остаётся 12 строк с датой Генплана и 0 с верной. Обязателен — без него тест неотличим от «оно и так было правильно».AND doc_url LIKE ...роняетtest_other_documents_with_same_date_are_untouched— тот самый контроль, который для этого и поставлен.pytest backend/tests/sql/test_2464_act_date_backfill.py— 6 passed (через туннель). Без БД — skipped, записи внесены вskip_allowlist.txtс причиной.После деплоя
Отчитаюсь числами: строк с
act_date = '2004-07-06'должно остаться 0, с2022-05-27— 9, с2020-02-12— 2.Продолжение #2981. Часть эпика #2464.
4e6ed8c044to668f8c6ffbПроверено на проде
Деплой
b975451bзелёный. Числа ровно те, что я обещал в описании:По документам:
Три документа, у которых дата была верной, не сдвинулись — контроль сужения по
doc_urlсработал не только в тесте.