RSS Feed

LMS, aktualizacja z 1.10.x do 1.11.x

Marzec 21, 2011 by 0verlord

Trafiła mnie ostatnio przyziemność zaktualizowania LMSa z 1.10.4, do najnowszej. Stara wersja nie chciała działać z najnowszym Debianem (Squeeze). Ciekawe, że stary LMS na nowym Debianie pokazywał menu bez logowania i pozwalał na przeróżne manipulacje na systemie.

Problemów jest na pewno kilka, dwa najgrubsze to brak aktualizacji kilku rzeczy w bazie.

nr 1. bug przy próbie zalogowania się,

Zapytanie: ALTER TABLE cashimport ALTER customerid DROP NOT NULL
Błąd: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL' at line 1
Zapytanie: ALTER TABLE cashimport ALTER customerid SET DEFAULT NULL
Błąd: Invalid default value for 'customerid'
Zapytanie: ALTER TABLE cashimport ADD FOREIGN KEY (customerid) REFERENCES customers (id) ON DELETE SET NULL ON UPDATE CASCADE
Błąd: Can't create table 'lms_atm.#sql-24e7_a6b' (errno: 150)

naprawiamy tak:
> ALTER TABLE cashimport MODIFY customerid integer default null;

Bug nr dwa, jak się okazuje po upgrade, komputery klientów nie są przypisane do zobowiązania, bo się baza mocno zmieniła pomiędzy 1.10 i 1.11. Generalnie można to oczywiście przeklikać ręcznie jak by ktoś był pracowity, ale ja tam osobiście wolę automatykę.

> insert into nodeassignments ( nodeid, assignmentid ) select nodes.id as blabla, assignments.id as assignmentid from nodes left join assignments on assignments.customerid = nodes.ownerid;

I potem już wszystkie komputery są automagicznie przypisane do odpowiedniego zobowiązania (liability).

Ciekawe, że trafiłem ten błąd przypadkiem, bo nie chciał mi działać moduł tc-ng w lmsd. TC dla odmiany działa ok, i generuje poprawne regułki.

Jaka jest różnica pomiędzy tc-ng i tc? TC dla każdego kompa generuje pełny pakiet, czyli podłączamy 3 kompy do taryfy 1mbit i każdy jeden komp dostaje 1mbit. TC-NG generuje klasy per klient, czyli nie ważne ile komputerów podłączymy, klient nie przeskoczy 1mbit.

Generalnie po wykonaniu altera i selectoinserta wszystko działa. O ile oczywiście ktoś nie wyprodukował skryptów, które generują np. regułki do firewalla na podstawie starego schematu bazy.


Brak komentarzy »

No comments yet.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

79 − = siedemdziesiąt cztery