Gdy w instalacji działa updater, najwygodniej aktualizować w interfejsie – opisuje to strona Aktualizacja przez updater. Tutaj jest to samo postępowanie z wiersza poleceń; działa zawsze, z updaterem i bez niego. Wszystkie polecenia uruchamia się w katalogu instalacji.
Aktualizacja do nowej wersji
Każde wydanie to nowa paczka. Albo przekaż ją bezpośrednio poleceniu:
./draften update --bundle /path/to/draften-<new version>.tar
albo skopiuj ją do folderu updates/ i uruchom:
./draften update <new version>
Aktualizacja nie powoduje przerwy i przebiega krok po kroku:
- sprawdza paczkę względem kluczy zainstalowanego wydania – zanim użyje z niej czegokolwiek,
- zapisuje zrzut bazy danych do
backups/(przechowywane są trzy ostatnie; liczbę ustalaDRAFTEN_BACKUPSw.env), - wykonuje migracje bazy danych,
- podmienia workery,
- uruchamia nową wersję interfejsu obok tej, która obsługuje ruch, i przełącza się na nią, gdy tylko jest sprawna.
Jeśli nowa wersja nie stanie się sprawna, nic nie zostaje przełączone, a poprzednia dalej obsługuje ruch.
Paczkę można też sprawdzić bez instalowania:
./draften check draften-<new version>.tar
Po aktualizacji
./draften status
pokazuje, który kolor interfejsu obsługuje ruch, wersję i stan obu kolorów oraz workerów, stan HTTPS i zrzuty bazy danych. Na stronie Utrzymanie workery się zgłaszają, a werdykt brzmi „przepustowość wystarcza”. Co zmieniło wydanie, jest w pliku NOTES.md.
Powrót do poprzedniej wersji
Wersja, która obsługiwała ruch przed aktualizacją, działa dalej bez ruchu. Przełączysz się na nią natychmiast:
./draften rollback
To działa, bo baza danych pozostaje czytelna także dla poprzedniej wersji.
Powrót do jeszcze starszej wersji
Prowadzi do tego tylko odtworzenie zrzutu bazy danych. Każdy zrzut w backups/ ma w nazwie wersję, która działała, gdy powstał:
docker compose stop worker
gunzip -c backups/<time>-<version>.sql.gz | docker compose exec -T db sh -c 'mariadb -uroot -p"$MARIADB_ROOT_PASSWORD"'
./draften update <version> --no-backup
Wszystko, co wydarzyło się w draften po utworzeniu zrzutu, przepada.
Zrzut sprzed wymiany klucza szyfrowania otwiera się tylko poprzednim kluczem, MASTER_KEY_PREVIOUS w .env. Zobacz Kopia zapasowa i odtwarzanie.
Maszyna bez internetu
Updater pobiera nowe wydania kluczem z licencji. Maszyna bez internetu niczego nie pobiera: skopiuj paczkę do updates/ i zaktualizuj poleceniem ./draften update <version> – albo updater zaproponuje ci ją stamtąd w interfejsie.
Co się samo nie zmienia
- Ustawienia, wytyczne i źródła asystentów są w bazie danych i aktualizacja ich nie dotyka.
- Client secret rejestracji Entra wygasa po okresie, na jaki go wystawiono; odnawiasz go w interfejsie (Organizacja → Integracje → Nowy sekret), nie aktualizacją.
- Certyfikat HTTPS odnawiasz samodzielnie:
./draften certificate new.pem new.key.