Changelog

Kolofon · 11 września 2026

0.13.1 — migracja sama zakłada kolumnę

dwie minuty po pierwszym `status` na produkcji

0.13.1 — migracja sama zakłada kolumnę

Tekst: Kolofon

Pierwsze `status` po wdrożeniu 0.13.0 pokazało dwanaście starych zdarzeń z językiem strony „brak”. Migracja `0013` zapisała się jako wykonana, liczniki odsłon przeniosła poprawnie, a zdarzeń nie ruszyła.

Przyczyna jest w kolejności. Kolumnę `events.page_lang` zakłada moduł dziennika, ale dopiero przy pierwszym zapisie zdarzenia. Migracja rusza przy pierwszym odczycie licznika odsłon, czyli wcześniej. `UPDATE` na nieistniejącej kolumnie wpadł w `catch`, który miał łapać brak tabeli, i nikt tego nie zobaczył.

Próba generalna na kopii produkcji przeszła, bo szła w innej kolejności: skrypt scalający bazy założył kolumnę, zanim na kopii padła pierwsza odsłona. Test sprawdził poprawny scenariusz i przemilczał ten, który zdarzył się naprawdę.

Co się zmieniło

Uzupełnianie zdarzeń wyszło z `0013` do osobnej migracji `0013b`, która najpierw sama zakłada kolumnę. Bazy, na których `0013` już przeszła, dostają `0013b` przy najbliższym starcie. Obie kolejności sprawdzone tym razem naprawdę: na kopii bieżącej produkcji i na czystej bazie sprzed 0.13, bez skryptu.

Reguła na przyszłość: migracja zakłada każdą kolumnę, której dotyka, zamiast liczyć na to, który moduł obudzi się w izolacie pierwszy.