Updater

Z Motława
Szczotka.png
Ten artykuł wymaga dopracowania zgodnie z zaleceniami edycyjnymi.
Po wyeliminowaniu wskazanych powyżej niedoskonałości prosimy usunąć szablon {{Dopracować}} z kodu tego artykułu.


Updater jest mechanizmem automatycznego uaktualniania struktury bazy danych i pobierania na serwer nowej wersji programu (jeżeli takowa została dla klienta wystawiona). Mechanizm działa w oparciu o linuksowy harmonogram zadań (cron.daily) i jest wywoływany codziennie o zdefiniowanej dla tego harmonogramu godzinie (zazwyczaj w godzinach nocnych).

Updater łączy się z odpowiednim serwerem firmy INT i pobiera z niego pliki zmian SQL, które zostały zmodyfikowane w ciągu ostatniej doby. Podobnie pobierana jest wersja programu. Czyli jest to mechanizm jednostronny 'do klienta'.

Po pobraniu plików SQL następuje ich automatyczny zapis do odpowiedniego katalogu na serwerze i wprowadzenie do bazy (czyli wykonanie SQLZmian). Wersja programu zostaje zapisana w katalogu zdefiniowanym w konfiguracji serwera (/etc/motlawa/motlawa.conf), zazwyczaj jest to katalog new. Wersja nie jest automatycznie zamieniana na wersję roboczą.

Oprócz automatycznych SQLZmian funkcjonują również tzw. "SQL Pre" wykonywane ręcznie na serwerze. Z reguły zawierają one uaktualnienia bazy danych o funkcje przeznaczone nie dla wszystkich klientów (np. wykonywane z naszych programów deklaracje PIT czy VAT, których nie wykonują wszyscy klienci).

Updater pobiera zawartość katalogów SQL, SQL51, nazwa_klienta/SQL, nazwa_klienta/SQL/nazwa_bazy. Pliki są serializowane w postaci nr_wersji.sql. (np 123.sql) Nie należy wykonywać update tabeli wersja - mechanizm updatera robi to sam.

Przykładowa konfiguracja - katalog klienta INT. Przyjmujemy założenie, że klient jest tożsamy z serwerem lub serwerami - jeśli zaistnieje potrzeba rozróżnienia serwerów (a co za tym idzie wersji .exe) to należy utworzyć odpowiedni katalog.

Katalog SQL - zmiany globalne - wszystkie zmiany struktur tabel i definicji widoków za wyjątkiem mocno uzasadnionych przypadków, triggery

Katalog SQL51 - zmiany globalne, dla wszystkich klientów - globalnie używane procedury i funkcje składowane

Katalog nazwa_klienta/SQL zmiany dotyczące wszystkich baz danego klienta, głównie procedury i funkcje składowane specyficzne dla klienta. Unikamy jak ognia zmiany struktur, triggerów i redefinicji procedur, funkcji zdefiniowanych w SQL_STORED.

Katalog nazwa_klienta/SQL/nazwa_bazy zmiany dotyczące wyłącznie wskazanej bazy danego klienta, reszta zastrzeżeń j.w.

Wszystkie zmiany są serializowane - tabela wersja zawiera pola nr, nr51, nr_kl, nr_db odpowiadające za serializację zmian na odpowiednich poziomach.

Dopuszczalne jest przeniesienie procedury z katalogu klienta w górę hierarchii, ale nie odwrotnie!


Katalog nazwa_klienta <- chodzi o katalog na serwerze Gate ;)

Katalogi na serwerze "Gate"

Dostęp zdalny do serwera:

 http://update.int.com.pl:56093/update/BIN/[IdKlienta]/

IdKlienta - Identyfikator klienta np. dla klienta "XYZ" będzie to http://update.int.com.pl:56093/update/BIN/XYZ/'

Oprócz katalogów z symbolami poszczególnych firm oraz katalogi SQL, na serwerze (Gate) znajdują się także katalogi systemowe

  • System - pliki systemowe dla systemu Motława
  • Utils - dodatkowe aplikacje związane pośrednio z systemem Motława