2.8. Upgrade

Uaktualnienie LMS'a przebiega w kilku etapach. Zacznij od sprawdzenia wymagań systemu, gdyż mogły ulec zmianie. Jeśli korzystasz z bazy MySQL powinieneś także zweryfikować uprawnienia użytkownika, one też ulegały zmianie w przeszłości.

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. Od wersji 1.3.1 wprowadzono automatyczną procedurę aktualizacji struktury bazy danych. Następuje ona za każdym razem podczas uruchomienia LMS-UI (jeszcze przed zalogowaniem do systemu).

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.

Ostrzeżenie

Jeżeli używasz wersji pobranej z CVSu musisz dodatkowo zadbać o instalację biblioteki Smarty. Do katalogu /lib/Smarty wgraj zawartość katalogu /lib z paczki Smarty. Czynność (wraz z pobraniem biblioteki Smarty) automatycznie wykonuje skrypt /devel/smarty_install.sh.