NASZ SYSTEMJak zdobyć trasę do ponownego uruchomienia migracji?
staramy się umieścić migracje jako pliki .sql pod kontrolą wersji. Programiści zapisaliby plik VN __ *. Sql, zatwierdzili kontrolę wersji, a zadanie uruchamiane co 5 minut automatycznie migruje do bazy danych Dev and Test. Gdy zmiana okazała się nie powodować problemów, ktoś inny uruchomiłby pracę ręczną, aby uruchomić migrację na produkcję.
mój problem:
miałem migrację demo, który stworzył kilka stolików. Sprawdziłem V4__DemoTables.sql do kontroli wersji na moim komputerze.
W naszym Linux-ie zadanie, które działa co 5 minut, wyodrębniło nowy plik z kontroli wersji, a następnie uruchomił plik flyway.sh. Wykrył plik i wykonał go.
Ale plik .sql miał literówkę. I używamy Neteeza, która ma problemy z lochem automatycznie zawijającym migrację w BEGIN TRAN ... END TRAN. Migracja utworzyła 2 tabele, a następnie została przerwana przed trzecią.
Nie ma problemu, pomyślałem. Zrzuciłem 2 tabele, które utworzył plik .sql. Sprawdzono brak kontroli wersji V4__, naprawiono literówkę i ponownie przesłano poprawkę.
Pięć minut później aktualizacja została wyodrębniona, ale przelot reklamuje, że suma kontrolna nie jest zgodna. NIE będzie więc uruchamiał zaktualizowanego pliku V4__DemoTables.sql.
Jak uzyskać mapę drogową, aby zaakceptować zaktualizowany plik i zaktualizować sumę kontrolną w pliku SCHEMA_VERSION na wypadek literówki?
Czytanie dokumentów wygląda na to, że twórcy sugerują, że powinienem utworzyć nowy plik V4_1_DemoTables.sql z poprawkami. Ale to zderzyłoby się z poleceniami w pliku V4__, więc wydawało się to błędne.
Więc tutaj jest to, co docs sugerować muszę zrobić:
Zostaw V4__ jako 'udane' migracji zgodnie z tabelą SCHEMA_VERSION.
Utwórz V4_1_, aby usunąć tabele, które zostały utworzone przed literówką w wierszu V4__.
Utwórz V4_2_, która ma literówkę z oryginalnego pliku, aby wykonać prawdziwą pracę.
Czy to prawda?
Dziękuję za szybką odpowiedź. Nie wiedziałem o oznaczeniu poprzedniego rzędu jako bieżącego. –