2.8. Upgrade

Uaktualnienie LMS'a przebiega w kilku etapach. Najpierw utwórz katalog z plikami nowej wersji (nie zaleca się nadpisywania starych plików nowymi) oraz usuń zawartość katalogu templates_c.

Następnie, jeśli nie masz jeszcze w systemie locali pl_PL.UTF-8, należy je utworzyć komendą:

# localedef -v -c -i pl_PL -f UTF-8 /usr/share/locale/pl_PL.UTF-8
Jeśli w interfejsie użytkownika znaki narodowe nie będą wyświetlane poprawnie możliwe, że trzeba będzie w pliku konfiguracyjnym serwera www (httpd.conf) ustawić:
AddDefaultCharset Off
oraz w konfiguracji PHP (php.ini) wyłączyć/zakomentować domyślne kodowanie:
;default_charset = "iso-8859-1"

Kolejnym krokiem jest dokonanie zmian w bazie. Dla ułatwienia migracji struktury bazy danych w katalogu /doc przygotowano pliki UPGRADE-1.2-1.6.mysql i UPGRADE-1.2-1.6.pgsql dla migracji od wersji 1.2 (oraz 1.3.0) do bieżącej. W nich znajdziesz krótki opis jak przeprowadzić aktualizację w zależności od stosowanej bazy danych. Jeśli przeprowadzasz upgrade z wersji nowszej od 1.3.0 aktualizacja struktury bazy danych nastąpi automatycznie podczas pierwszego logowania.

Ostatni etap - konwersja danych do unicodu. Począwszy od wersji 1.5.4 zaleca się przechowywanie danych zakodowanych w utf-8 (UNICODE), poniżej zostanie przedstawiony przykład migracji z kodowania ISO-8859-2 do UNICODE na bazie danych PostgreSQL.

Zaczynamy od utworzenia backupu danych w LMSie. Następnie przechodzimy do katalogu z backupami i wykonujemy konwersję pliku backupu.

# iconv --from-code=ISO-8859-2 --to-code=UTF-8 < plik_backupu > nowy_plik
Po czym zmieniamy nazwę nowo powstałego pliku na lms-xxxxxxx.sql, aby plik ten był widoczny z poziomu LMS-UI. Teraz należy utworzyć bazę danych z kodowaniem UNICODE (opis w dziale Instalacja). Po czym uruchamiamy LMS-UI i odtwarzamy dane z przekonwertowanego backupu.

Notatka

Możliwa jest praca z bazą danych z kodowaniem innym niż UNICODE. W takim wypadku rezygnujemy z ostatniego, opisanego wyżej, etapu i ustawiamy odpowiednio opcję konfiguracyjną server_encoding w sekcji [database]. Rozwiązanie to będzie miało zły wpływ na wydajność ze względu na przeprowadzaną konwersję kodowania danych.