Skip to main content
Aktualizacja GoModel to pobranie nowej wersji i restart. Migracje schematu są wbudowane w binarkę i uruchamiają się automatycznie przy pierwszym starcie nowej wersji, więc nie ma osobnego kroku migracji ani okna serwisowego poza samym restartem.
Przed każdą aktualizacją wykonaj kopię zapasową bazy danych. GoModel jest aktywnie rozwijany i często wydawany, a niektóre aktualizacje przekształcają zapisane dane. Kopia to jedyna rzecz, dzięki której nieudana aktualizacja jest pięciominutowym problemem, a nie utratą ścieżki audytu, historii użycia i zestawu zarządzanych kluczy API.

1. Wykonaj kopię zapasową bazy danych

Zatrzymaj gateway, aby plik nie był zapisywany w trakcie kopiowania, a następnie zarchiwizuj wolumen:
Zastąp gomodel_data nazwą swojego wolumenu (docker volume ls). Jeśli zamiast tego montujesz katalog hosta (bind mount), wystarczy cp -a ./data ./data.bak-$(date +%F).

2. Zaktualizuj

Docker Compose

Logi powinny pokazywać nową wersję w pierwszej linii oraz linię storage configured ze ścieżką do Twojej bazy danych.
Przed aktualizacją sprawdź, czy baza danych znajduje się na wolumenie. Obraz nie deklaruje żadnego wolumenu, więc kontener bez montowania w /app/data trzyma bazę SQLite we własnym systemie plików kontenera — i traci wszystko w momencie, gdy aktualizacja zastąpi kontener. Zobacz storage na produkcji.

docker run

Odtworzenie kontenera usuwa jego flagi, więc najpierw odczytaj je z działającego kontenera:
Jeśli w /app/data nic nie jest zamontowane, baza danych znajduje się w systemie plików kontenera i docker rm ją usunie. Skopiuj ją na zewnątrz i zainicjuj nią wolumen, który zamierzasz zamontować, dopóki stary kontener jeszcze istnieje — pusty wolumen zasłania kopię, a gateway startuje bez kluczy, użycia i logów:
65532 to UID użytkownika nonroot w obrazie — gateway nie może zapisywać na wolumenie należącym do kogokolwiek innego. Następnie zastąp kontener, przekazując ponownie te same flagi montowania i zmiennych środowiskowych:

Binarka

Uruchom ponownie instalator. Pobiera on najnowszy release i podmienia binarkę w miejscu:
Następnie zrestartuj gateway — nie ma aktualizacji na gorąco w miejscu.

3. Sprawdź

GET /version zwraca działającą wersję, najnowszy opublikowany release oraz informację, czy dostępna jest aktualizacja:
Strona Settings w dashboardzie pokazuje ten sam wynik. W Świadomości wersji dowiesz się, jak działa to sprawdzanie i jak je wyłączyć.

Co robią migracje

Migracje uruchamiają się przy pierwszym starcie nowej wersji. Nie ma osobnego polecenia migracji, a aktualizacja nigdy nie przenosi ani nie usuwa Twojej bazy danych, konfiguracji ani cache’u. Większość z nich ma charakter addytywny: brakujące tabele, indeksy i kolumny są tworzone, a częściowo zastosowany schemat można bezpiecznie ponowić przy następnym starcie. Niektóre wydania zamiast tego przekształcają storage — gdy budżety i limity żądań zyskały zakresy, ich tabele zostały przebudowane, a stare usunięte. Oba rodzaje są bezpieczne przy aktualizacji w przód, i właśnie dlatego kierunek odwrotny wymaga ostrożności.

Przypinanie wersji

Aktualizacje domyślnie instalują najnowszy release. Aby pozostać przy znanej wersji, przypnij ją:
Użyj tagu wersji w pliku compose zamiast latest.
Zastąp X.Y.Z opublikowanym releasem.

Wycofywanie aktualizacji

Zainstaluj lub pobierz poprzednią wersję i zrestartuj gateway. To wystarczy tylko wtedy, gdy każda migracja pomiędzy wersjami była addytywna; po migracji przekształcającej starsza binarka szuka storage, które aktualizacja przebudowała. Z zewnątrz nie da się tych dwóch przypadków odróżnić, więc przywróć kopię zapasową z kroku 1, chyba że wiadomo, że starsza wersja uruchamia się na zmigrowanej bazie danych. Przywrócenie kopii zapasowej wolumenu SQLite zastępuje zawartość wolumenu, więc najpierw zatrzymaj gateway — docker compose stop gomodel albo docker stop gomodel w przypadku samodzielnego kontenera — a następnie rozpakuj archiwum i uruchom go ponownie:

Gdy coś pójdzie nie tak

Nadal masz problem? Zapytaj na Discordzie lub otwórz zgłoszenie na GitHubie.
Ostatnia modyfikacja 24 października 2026