Przejdź do głównej zawartości

Zarządzanie zainstalowaną aplikacją


VSoft archITekt umożliwia mechanizm zmiany konfiguracji istniejącej aplikacji. Zmiana jest możliwa w zakresie większości parametrów. Nie obsługiwane są zmiany poniższych parametrów:

ParametrOpis
technicalNameTechniczna nazwa środowiska.
pathProjectFolderKatalog instalacji projektu.
Uwaga! Możliwa ręczna zmiana - należy ręcznie przenieść katalog projektu w nową lokalizację.
runtimeFolderKatalog, w którym są zainstalowane komponenty aplikacji.
Uwaga! Możliwa ręczna zmiana – należy odinstalować komponenty aplikacji, i zmienić wartość w pliku default.runtime.json.
versionProviderRodzaj serwera wersji.
applicationDbAuthenticationSposób autentykacji podczas połączenia z bazami danych.
dbServerAdres serwera baz danych.
Uwaga! Możliwa jest ręczna zmiana. W tym celu należy przenieść bazy danych oraz użytkowników baz danych na nowy serwer i zmienić wpisy w plikach project.json (ProjectVersionServerServerInstance) i default.runtime.json (DatabaseServerInstance).
failoverCluster, failoverClusterGroupNazwa klastra failover oraz grupa (rola), w której dodane są usługi aplikacji.
Uwaga! Możliwa jest ręczna zmiana. W tym celu należy odinstalować komponenty środowiska (skrypt InstallOnPremises.ps1 z opcją ClusterUninstall), zmienić wpisy w pliku project.json(FailoverCluster, FailoverClusterGroup) i ponownie uruchomić instalację komponentów środowiska.

W zależności od zakresu zmian na środowisku po uruchomieniu procedury aktualizacji wymagana jest aktualizacja komponentów środowiska lub ich reinstalacja. Reinstalacja jest wymagana w przypadku, gdy dokonana zmiana wymaga uruchomienia poleceń systemowych zmieniających konfigurację.

Aktualizacja obrazu VSoft archITekt​

Aktualizacja już zainstalowanej aplikacji do nowej wersji platformy realizowana jest w następujących krokach:

  1. Na wszystkich serwerach, na których są zainstalowane komponenty aplikacji (WWW, APP), oraz na komputerze administratora (w przypadku gdy instalacja była wykonywana zdalnie) należy zainstalować nową wersję obrazu VSoft archITekt.
  2. Należy uruchomić skrypt aktualizujący komponenty, który dokona automatycznej aktualizacji aplikacji:
cd "C:\Program Files\VSoft\archITekt\Images\[nazwa obrazu]"
.\InstallOnPremises.ps1 `
-PathProjectFolder [katalog środowiska] `
-SetupCommand [komenda: ClusterInstallOrUpdate / lub ClusterForceReinstall]

Aktualizacja pliku licencji dla aplikacji​

W przypadku posługiwania się licencją dostarczoną w postaci pliku XML jest ona przechowywana w katalogu [katalog projektu]\License skąd podczas instalacji / aktualizacji komponentów systemu jest przekopiowywana do katalogów poszczególnych komponentów.

W celu aktualizacji pliku licencji należy:

  1. Umieścić aktualny plik licencji w katalogu [katalog projektu]\License
  2. Uruchomić procedurę aktualizacji komponentów środowiska

Uruchomienie skryptu rekonfigurującego środowisko​

cd "C:\Program Files\VSoft\archITekt\Images\[nazwa obrazu]"
.\Reconfigure.ps1 `
-pathProjectFolder "[katalog projektu]" `
-envName "[(opcja) nowa nazwa środowiska]" `
-securityMode "[(opcja) nowy rodzaj zabezpieczenia]" `
-reservedPortsBlockBegin "[(opcja) początek nowego obszaru zarezerwowanych portów]" `
-licenseFilePath "[(opcja) ścieżka do pliku z nową licencją dla środowiska]" `
-appServerFQDNAddress "[(opcja) nowa publiczna nazwa serwera WWW]" `
-webServerFQDNAddress "[(opcja) nowa publiczna nazwa serwera aplikacyjnego]" `
-targetAppServers "[(opcja) nowa lista serwerów aplikacyjnych na których ma być zainstalowana aplikacja]" `
-targetWebServers "[(opcja) nowa lista serwerów WWW, na których ma być zainstalowana aplikacja]"
-appServer\_HttpsCertificate "[(opcja) nowy odcisk certyfikatu serwera aplikacyjnego]" `
-webServer\_HttpsCertificate "[(opcja) nowy odcisk certyfikatu serwera WWW]" `
-applicationCredentialPassword "[(opcja) nowe hasło użytkownika domenowego]"
-configKeys "[(opcja) Hashtable zawierająca zmienione lub usuwane parametry do zapisania w konfiguracji technicznej]"
-sensitiveConfigKeys "[(opcja) lista kluczy, które mają być od teraz traktowane jako wrażliwe]"
-notSensitiveConfigKeys "[(opcja) lista kluczy, które mają przestać być traktowane jako wrażliwe]"
-FeatureSSO "[(opcja) włączenie / wyłączenie funkcji logowania SSO (Single Sign On)]"
-SecurityPassword "[(opcja) Hasło bezpieczeństwa środowiska]"
-ResetDbPasswords [opcjonalny przełącznik wykonujący reset haseł użytkowników baz danych]
-SetVipPasswords [(opcja) ustawienie nowych haseł użytkownikom providera VIP]
-ClusterServerCredential "[(opcja) podanie poświadczeń (PSCredential) do instalacji na klastrze – jeśli użytkownik uruchamiający skrypt nie ma prawa administratora na maszynach klastra]"
-ServiceStartupType [(opcja) tryb uruchamiania serwisów archITekta("Automatic", "AutomaticDelayedStart", "Disabled", "Manual"). Domyślna wartość = "Automatic"]
-UsePluginMySql [(opcja) czy włączyć plugin umożliwiający łączenie się z bazami MySQL(„On”, „Off”). Domyślna wartość = „Off”]
-SecurityPassword "[(opcja) Hasło bezpieczeństwa środowiska]" `
-NewSecurityPassword "[(opcja) Nowe hasło bezpieczeństwa środowiska]" `
-RemoveSecurityPassword "[(opcja) Usunięcie szyfrowania konfiguracji środowiska]" `
-LockedImageVersion [(opcja) zablokować podmianę wersji obrazu („On”, „Off”). Domyślna wartość = „Off”]
-WhatIf [(opcja) sprawdza poprawność parametrów, nie uruchamia operacji rekonfiguracji środowiska]

Uruchamiając skrypt rekonfiguracyjny jedynym obowiązkowym do podania parametrem jest katalog projektu (środowiska). Pozostałe parametry podajemy jedynie w przypadku gdy chcemy zmienić daną opcję.

Poniżej lista parametrów opcjonalnych wraz z opisem. W kolumnie „Reinstalacja” znajduje się informacja opisująca, czy wymagana jest reinstalacja komponentów środowiska.

Reinstalacja:

  1. nie jest wymagana w przypadku, gdy zmiana dotyczy wyłącznie zmiany konfiguracji aplikacji,
  2. jest wymagana, gdy zmiana wymaga uruchomienia serii komend systemowych rekonfigurujących komponent.
ParametrOpisReinstalacja
envNameNazwa środowiska prezentowana na stronie logowania aplikacji. Może zawierać dowolny zestaw znaków.Nie
securityModeRodzaj zabezpieczenia dla instalowanej aplikacji. Dopuszczalne wartości:
• SSL
• NONE.
W przypadku podania wartości SSL komunikacja z aplikacją WWW i usługami WebService będą zabezpieczone certyfikatami SSL (będzie wymagane podanie odcisków palca certyfiaktow).
Tak
reservedPortsBlockBeginPierwszy z przedziału portów wykorzystywanych na wewnętrzne potrzeby aplikacji:
• Aplikacja wykorzystuje 2 porty (reservedPortsBlockBegin, reservedPortsBlockBegin+1) do komunikacji pomiędzy komponentami. Ruch pomiędzy serwerami na tych portach musi być otwarty.
• Aplikacja wykorzystuje kolejne porty (reservedPortsBlockBegin+2 i następne) do uruchamiania LibreOffice w trybie serwerowym (komunikacja z tymi portami odbywa się wyłącznie w obrębie serwera). Ilość zajętych portów jest równa ilości uruchomionych konwerterów LibreOffice.
Tak
licenseFilePathŚcieżka do pliku licencji dla tego środowiska. Operacja kopiuje plik do katalogu [katalog projektu]\Licences (nie usuwa starych plików licencji z katalogu).Nie
appServerFQDNAddressNazwa pod jaką będą dostępne serwery aplikacyjne środowiska w sieci. Nazwa musi być zgodna z nazwą podaną w certyfikacie wskazanym w zmiennej appServer\_HttpsCertificate.Tak
targetWebServersNazwa pod jaką będą dostępne serwery WWW środowiska w sieci. Nazwa musi być zgodna z nazwą podaną w certyfikacie wskazanym w zmiennej webServer\_HttpsCertificateTak
applicationCredentialPasswordNowe hasło użytkownika w przypadku logowania domenowego.Tak
configKeysHashtable zawierająca nazwy zmiennych z wartościami, które zostaną uzupełnione w konfiguracji aplikacji (mechanizm konfiguracji aplikacji opisany jest w kolejnym rozdziale tej dokumentacji).Parametr powinien mieć postać:
@{"nazwa zmiennej 1"="wartość zmiennej 1";"nazwa zmiennej 2"="wartość zmiennej 2"; itd.}
Przykład wywołania:
configKeys @{ "common.connection.provider_ad" = "LDAP://my.server.local:389"; "custom.myvariable" = CODESPANPLACEHOLDER0END"}"
Na potrzeby skomplikowanych przypadków wdrożeniowych udostępniona została możliwość ustawienia innych wartości parametru wyłącznie dla wybranych NODE. W tym celu jako nazwę zmiennej należy podać wartość nazwa zmiennej@nazwa node.
Wartości kluczy wrażliwych są zapisywane w sposób zaszyfrowany i nie trafiają do logu skryptu. Patrz: Klucze wrażliwe.
Tak
sensitiveConfigKeysLista nazw kluczy konfiguracyjnych, które od teraz mają być traktowane jako wrażliwe: ich wartości w plikach projektu zostaną zaszyfrowane, a przy najbliższej aktualizacji komponentów zostaną zapisane w tabeli CONFIG_KEYS z flagą CK_SENSITIVE = 1. Klucz może już mieć wartość w projekcie albo otrzymać ją w tym samym wywołaniu w parametrze configKeys. Podaje się wyłącznie nazwy kluczy, bez wskazania węzła.
Przykład wywołania:
sensitiveConfigKeys "custom.api.token"
Szczegóły: Klucze wrażliwe.
Nie
notSensitiveConfigKeysLista nazw kluczy konfiguracyjnych, które mają przestać być traktowane jako wrażliwe: ich wartości w plikach projektu zostaną odszyfrowane (dla wszystkich węzłów), a przy najbliższej aktualizacji komponentów flaga CK_SENSITIVE zostanie zdjęta. Nie można podać klucza wrażliwego z definicji ani klucza podanego jednocześnie w sensitiveConfigKeys.Nie
FeatureSSOParametr określa czy w aplikacji ma być włączona funkcjonalność logowania SSO (Single Sign On). Dopuszczalne wartości: „On”, „Off”.Tak
ResetDbPasswordsUżycie tego parametru powoduje reset (wygenerowanie nowych) haseł użytkownika i administratora aplikacji.Nie
SetVipPasswordsUmożliwia awaryjną zmianę haseł użytkownikom VIP. Dane użytkowników i nowych haseł przekazujemy w postaci HashTable:
@{"user1" = "newPassword1"; "user2" = "newPassword2"}
Operacja zmiany haseł ustawia ważność hasła na 30 dni od daty zmiany, resetuje licznik dopuszczalnych błędnych logowań na wartość 4 i resetuje licznik dopuszczalnych logowań po dacie wygaśnięcia hasła na wartość 4.
Nie
SecurityPasswordAktualne hasło bezpieczeństwa którym zaszyfrowana jest konfiguracja techniczna danego środowiska.Nie
ClusterServerCredentialPoświadczenia administratora klastra – w przypadku, gdy instalację/rekonfigurację wykonuje użytkownik, nie posiadający uprawnień administracyjnych na klastrze. Jest to obiekt typu System.Management.Automation.PSCredentialTak
ServiceStartupTypeSposób uruchamiania usług archITekta. Możliwe wartości: "Automatic", "AutomaticDelayedStart", "Disabled", "Manual". Brak podania warości parametru zainstaluje serwisy z wartością „Automatic”
Uwaga:
W przypadku instalacji na klastrze Failover wybranie wartości "Automatic", "AutomaticDelayedStart" zostanie w trakcie instalacji zmienione na wartość „Manual”.
Tak
NewSecurityPasswordNowe, zmienione hasło bezpieczeństwa do zaszyfrowania konfiguracji technicznej na środowisku. Wartości kluczy wrażliwych są przeszyfrowywane nowym hasłem w obu plikach projektu (project.json, custom.project.json) i w tabeli CONFIG_KEYS; jeśli środowisko nie miało dotąd hasła bezpieczeństwa, wartości kluczy wrażliwych zostaną zaszyfrowane.Tak
RemoveSecurityPasswordUżycie tego przełącznika powoduje odszyfrowanie konfiguracji technicznej środowiska, w tym wartości kluczy wrażliwych (oznaczenie kluczy jako wrażliwych pozostaje).Tak
UsePluginMySqlWłączenie pluginu umożliwiającego łączenie się z bazami MySQL. Wybranie wartości „On”, wymaga podczas instalacji obrazu archITekta wybrania instalacji pluginu MySQL. Możliwe wartości: „On”, „Off”. Brak podania wartości parametru zainstaluje serwisy z wartością „Off”.Nie
LockedImageVersionBlokuje/odblokowuje możliwość aktualizacji obrazu dla tego środowiska. Możliwe wartości: „On”, „Off”.Nie
WhatIfDodając ten przełącznik do parametrów skryptu zmieniamy sposób jego działania – wykonanie skryptu zostanie przerwane zaraz po fazie weryfikacji parametrów niezależnie od jej wyniku. Użycie tego parametru umożliwia weryfikację poprawności parametrów użytych do rekonfiguracji środowiska bez uruchamiania właściwej rekonfiguracji.

Przykład skryptu z parametrami:

cd "C:\Program Files\VSoft\archITekt\Images\dev"
.\Reconfigure.ps1 `
-pathProjectFolder " C:\VSoft\Projects\SAMPLE1" `
-envName "My new name" `
-reservedPortsBlockBegin "49000" `
-securityMode NONE `
-licenseFilePath "C:\My.new.license.xml" `
-configKeys "{ `"custom.myvariable`": `"specyfic value`" }" `
-sensitiveConfigKeys "custom.api.token" `
-FeatureSSO "On" `
-ResetDbPasswords `
-SetVipPasswords @{ "admin": "newpassword" }

Po uruchomieniu skryptu rekonfiguracyjnego:

  1. należy uruchomić skrypt aktualizujący środowisko. Można użyć w tym celu komendy ClusterInstallOrUpdate lub ClusterForceReinstall.

Uwaga! Skrypt każdorazowo weryfikuje spójność konfiguracji projektu, i w przypadku wykrycia zmian wymagających reinstalacji – wykonuje ją automatycznie.

cd "C:\Program Files\VSoft\archITekt\Images\[nazwa obrazu]"
.\InstallOnPremises.ps1 `
-PathProjectFolder [katalog środowiska] `
-SetupCommand [komenda: ClusterInstallOrUpdate / lub ClusterForceReinstall]
ostrzeżenie

Jeśli w ramach zmian konfiguracji jakiś serwer został usunięty z obu grup serwerów app i web należy na nim ręcznie odinstalować komponenty aplikacji poprzez uruchomienie skryptu odinstalowującego komponenty aplikacji: cd "C:\VSoft\[technicalName]\" .\UninstallOnPremisesComponents.ps1

PackageImport – Wdrożenie nowej wersji aplikacji​

W celu wdrożenia nowej wersji aplikacji na środowisku wywoływany jest skrypt PackageImport.ps1

Sposób wywołania skryptu:

cd "C:\Program Files\VSoft\archITekt\Images\[nazwa obrazu]"
.\PackageImport.ps1 `
-PathProjectFolder - [ścieżka do folderu z aplikacją]
-PackagePath - [ścieżka do paczki z nową wersją aplikacji]
-SecurityPassword [(opcja)hasło bezpieczeństwa]
-Override [(opcja)nadpisz całkowicie nową wersją]

Parametry:

  1. PathProjectFolder – katalog projektu (środowiska)
  2. PackagePath – ścieżka do paczki - archiwum z nową wersją aplikacji
  3. SecurityPassword – hasło bezpieczeństwa środowiska (wymagane do podania jeśli środowisko korzysta z zaszyfrowanej konfiguracji technicznej)
  4. Override - opcja nadpisuje wersję aplikacji usuwając wszystkie istniejące definicje przed wykonaniem importu. Zachowanie analogiczne jak podczas zaznaczenia opcji Replace current version podczas importu plików z poziomu VSoft arhcITekt Launcher. Patrz: Importowanie plików do projektu.
ostrzeżenie

Po uruchomieniu procedury wgrania nowej wersji aplikacji do projektu należy wykonać operację aktualizacji komponentów aplikacji (za pomocą skryptu InstallOnPremise.ps1 z parametrem Upgrade/ClusterUpgrade).

Przykład skryptu z parametrami:

cd "C:\Program Files\VSoft\archITekt\Images\dev"
.\PackageImport.ps1 `
-PathProjectFolder "C:\VSoft\Projects\SAMPLE1" `
-PackagePath – "C:\MyApplication\_v1.0.1.arch.zip"

Usunięcie projektu​

Uruchomienie skryptu DestroyProject.ps1 powoduje usunięcie baz danych projektu z serwera bazodanowego oraz komponentów projektu z klastra.

Sposób wywołania skryptu:

cd "C:\Program Files\VSoft\archITekt\Images\[nazwa obrazu]"
.\ DestroyProject.ps1 `
-PathProjectFolder [ścieżka do folderu z aplikacją]
-dbUser [(opcja) użytkownik serwera bazodanowego]
-dbPassword [(opcja) użytkownik serwera bazodanowego]
-clusterServerCredential "[(opcja) podanie poświadczeń (PSCredential) do instalacji na klastrze
– jeśli użytkownik uruchamiający skrypt nie ma prawa administratora na maszynach klastra]"
-force [opcjonalny przełącznik]

Parametry:

  1. PathProjectFolder – katalog projektu (środowiska).
  2. dbUser, dbPassword – użytkownik i hasło serwera baz danych. W przypadku logowania domenowego nie należy podawać tych parametrów.
  3. ClusterServerCredential - poświadczenia administratora klastra – podawane w przypadku, gdy instalację wykonuje użytkownik nie posiadający uprawnień administracyjnych na klastrze. Jest to obiekt typu System.Management.Automation.PSCredential.
  4. Force – użycie tego przełącznika powoduje, że procedura usuwania projektu będzie kontynuowana nawet w przypadku braku połączenia z częścią jego komponentów (np. którymś z serwerów, lub z serwerem baz danych). W takim przypadku może być wymagane późniejsze ręczne usunięcie komponentów, których nie udało się usunąć automatycznie.
wskazówka

Warto wiedzieć: Skrypt usuwający projekt wywołuje deinstalację komponentów na serwerach, na których zainstalowana jest aplikacja. W przypadku wystąpienia problemów z połączeniem z danym serwerem można usunąć komponenty z serwera, uruchamiając skrypt UninstallOnPremisesComponents.ps1 znajdujący się w katalogu aplikacji na serwerach.

Uruchomienie skryptu UninstallOnPremisesComponents.ps1 możliwe jest zarówno przed jak i po wywołaniu operacji usunięcia projektu.

W przypadku wystąpienia problemów z usunięciem obiektów bazodanowych projektu, można usunąć je ręcznie. Są to: bazy danych z prefixem „technicalName_” projektu oraz loginy z prefixem „technicalName_” (lub loginy dla użytkowników domenowych aplikacji, jeśli ten tryb był wykorzystywany).

Przykład skryptu z parametrami:

cd " C:\Program Files\VSoft\archITekt\Images\dev"
.\ DestroyProject.ps1 `
-PathProjectFolder "C:\VSoft\Projects\SAMPLE1" `
-dbUser "superadmin" `
-dbPassword "superadmin_password"

Naprawa projektu​

Uruchomienie skryptu Repair.ps1 powoduje odtworzenie brakujących baz danych projektu. Skrypt ma zastosowanie głównie na środowiskach deweloperskich / testowych, gdzie z dowolnego powodu chcemy usunąć bazę danych i zastąpić nową. Skrypt analizuje, których baz danych środowiska brakuje i je odtwarza. Skrypt nie ingeruje w istniejące bazy danych.

Sposób wywołania skryptu:

cd "C:\Program Files\VSoft\archITekt\Images\[nazwa obrazu]"
.\Repair.ps1 `
-PathProjectFolder [ścieżka do folderu z aplikacją]
-dbUser [(opcja) użytkownik serwera bazodanowego]
-dbPassword [(opcja) użytkownik serwera bazodanowego]
-elasticPoolName "[(opcja) nazwa puli w przypadku instalacji na Azure SQL]"
-initialAdminUser "[nazwa administratora środowiska]"
-initialAdminPassword "[hasło administratora środowiska]"
-SecurityPassword "[(opcja) Hasło bezpieczeństwa środowiska]"
-WhatIf [(opcja) sprawdza poprawność parametrów, nie uruchamia operacji tworzenia środowiska]

Parametry:

  1. PathProjectFolder – katalog projektu (środowiska).
  2. dbUser, dbPassword – użytkownik i hasło serwera baz danych. W przypadku logowania domenowego nie należy podawać tych parametrów.
  3. elasticPoolName – nazwa puli w przypadku instalacji na Azure SQL.
  4. initialAdminUser , initialAdminPassword – wymagane w przypadku odtworzenia bazy VIP na środowisku innym niż deweloperskie
  5. Security password - Hasło bezpieczeństwa.
  6. WhatIf - dodając ten przełącznik do parametrów skryptu, zmieniamy sposób jego działania – wykonanie skryptu zostanie przerwane zaraz po fazie weryfikacji parametrów niezależnie od jej wyniku. Użycie tego parametru umożliwia weryfikację gotowości środowiska do instalacji przed uruchamianiem właściwej instalacji.

Przykład skryptu z parametrami:

cd " C:\Program Files\VSoft\archITekt\Images\dev"
.\Repair.ps1 `
-PathProjectFolder "C:\VSoft\Projects\SAMPLE1" `
-dbUser "superadmin" `
-dbPassword "superadmin_password"

Opis skryptu do administracyjnego przesuwania wskaźnika wykonania skryptu użytkownika​

W czasie wdrożenia aplikacji może okazać się konieczne administracyjne wymuszenie ponownego uruchomienia serii skryptów aplikacji lub pominięcia kilku skryptów aplikacji

W celu administracyjnej zmiany numeru skryptu aplikacji, od którego powinno nastąpić wykonanie skryptów należy użyć skryptu powershell RewindApplicationSqlScript.ps1

Uruchamiając skrypt należy podać nazwę skryptu aplikacji, przed który chcemy przesunąć wskaźnik (inaczej: nazwę skryptu, od którego chcemy kontynuować wykonanie procedury aktualizacji aplikacji).

Tak naprawdę to kluczowe znaczenie ma tutaj NUMER skryptu (nazwa użytkownika zastosowana w nazwie skryptu może być dowolna), ze względu na to, że każdy skrypt SQL aplikacji musi posiadać unikalny numer sterujący kolejnością jego wykonania.

Polecenie wykonujemy przekazując następujące parametry:

.\RewindApplicationSqlScript.ps1 `
-pathProjectFolder [ścieżka do katalogu projektu] `
-runtimeFileName [(opcja) nazwa runtime w przypadku stosowania niestandardowego] `
-nameOfScriptToRewind [nazwa skryptu przed który chcemy przesunąć wskaźnik wykonania] `
-SecurityPassword [(opcja) hasło bezpieczeństwa dla zaszyfrowanego środowiska]

Przykład użycia:

.\RewindApplicationSqlScript.ps1
-pathProjectFolder 'C:\vsoft\Projects\T01\'
-nameOfScriptToRewind 'U.0004.sample\_script.sql'

Powyższe polecenie da projektu „T01” przestawia wykonanie skryptów SQL aplikacji przed skrypt o numerze „U.0004” (nazwa ma charakter wyłącznie informacyjny). Kolejne uruchomienie procedury aktualizacji projektu w VSoft archITekt Launcher wykona wszystkie zastane skrypt począwszy od numeru „U.0004”.

Od strony technicznej wykonanie komendy skutkuje powstaniem wpisu w tabeli _DATABASE_JOURNAL, który wskazuje, od którego skryptu mają być uruchamiane kolejne skrypty aplikacji.

image

Automatyczne wykonywanie skryptów aktualizujących strukturę danych​

Platforma archITekt w standardowym przypadku użycia sama aktualizuje strukturę danych aplikacji po każdym zaimportowaniu paczki.

Technicznie:

Podczas procedury eksportu paczki platforma archITekt generuje w sposób automatyczny skrypty SQL aktualizujące strukturę bazy danych i tabele słownikowe. W czasie importu paczki składuje te pliki w katalogu projektu (a podkatalogu Init_Sql!FINISH), a w trakcie wykonywania procedury aktualizacji komponentów aplikacji automatycznie uruchamia te skrypty aktualizując strukturę bazy danych.

Wykonywanie własnych skryptów rozszerzających strukturę danych​

W przypadku chęci uruchomienia na bazie danych własnych skryptów, użytkownik może skorzystać z możliwości dodawania własnych skryptów do definicji struktury danych bezpośrednio w archITekt Studio. Patrz: Skrypty SQL użytkownika.

W takim przypadku platforma archITekt potraktuje dodatkowe skrypty użytkownika jako integralną część konfiguracji i zadba o ich automatyczne uruchomienie po każdym zaimportowaniu paczki.

Technicznie:

Platforma archITekt traktuje skrypty użytkownika jako integralną część automatycznie generowanych skryptów aktualizujących strukturę danych; są one uruchamiane podczas standardowej operacji aktualizacji bazy danych

Wykonywanie dowolnych skryptów na bazach danych aplikacji​

ostrzeżenie

Poniższa funkcjonalność jest funkcjonalnością eksperymentalną i może ulec zmianie w przyszłości

W przypadku gdy przy okazji instalacji nowej wersji aplikacji istnieje potrzeba wykonania własnych dedykowanych skryptów SQL (np. aktualizujących dane w bazie lub wykonujących inne specyficzne operacje na dowolnej z baz danych aplikacji) wówczas muszą być umieszczone w odpowiednim folderze, tak by były wykonane na bazie danych.

  1. Wykonywanie dedykowanych skryptów SQL na początku procedury aktualizacji. Chcąc wykonać własne skrypty na początku procedury aktualizacji struktury bazy danych użytkownik powinien umieścić je w katalogu !BEGIN
  2. Wykonywanie dedykowanych skryptów SQL na końcu procedury aktualizacji. Chcąc wykonać własne skrypty na końcu procedury aktualizacji struktury bazy danych użytkownik powinien umieścić je w katalogu !FINISH

Skrypty umieszczane w katalogach są wykonywane w kolejności naturalnej (tak jak posortowane w Exploratorze Windows). Dobrą praktykę jest prefixowanie nazw skryptów liczbami „001_”, „002_” w celu zagwarantowania odpowiedniej kolejności wykonania.

W katalogu !FINISH umieszczane są również skrypty automatycznie generowane przez platformę VSoft archITekt zawierające operacje aktualizacji struktury bazy danych i tabel słownikowych. Należy założyć, że skrypty archITekta będą dostarczane z nazwami plików pomiędzy 100_ a 200_.

Przykładowo:

  1. Skrypty 001_ oraz 050_ wykonają się przed automatycznie wygenerowanymi przez platformę skryptami.
  2. Skrypty 110_ oraz 120_ - automatycznie generowane przez platformę wykonają się w następnej kolejności.
  3. Skrypty 250_ oraz 300_ wykonają się po skryptach automatycznie wygenerowanych przez platformę.

image

Uwaga!

W specyficznych przypadkach użytkownik może dostarczyć skrypty o nazwach identycznych jak generowane automatycznie przez platformę. Wówczas platforma nie nadpisze tych plików tylko wykorzysta je traktując je jako swoje skrypty.

W tym momencie automatycznie generowane są pliki:

  1. 110_EDMX.sql – zawiera skrypty aktualizujące strukturę danych - o zawartości identycznej jak z narzędzia archITekt Studio - Patrz: Aktualizacja struktury danych.
  2. 120_DICT.sql – zawiera skrypty aktualizujące słowniki (o zawartości identycznej jak z narzędzia Studio - Patrz: Aktualizacja słowników.)

Zabezpieczenie przed wielokrotnym wykonaniem skryptu użytkownika​

Fakt uruchomienia na bazie danych skryptu użytkownika jest odnotowywany w tabeli _DATABASE_UPDATE_JOURNAL występującej w każdej bazie danych platformy. Tą informację możemy wykorzystać do sterowania krotnością wykonania naszego skryptu.

Na przykład, gdy chcemy ograniczyć wykonanie naszego skryptu umieszczonego w katalogu !FINISH do jednokrotnego wykonania wówczas na jego początku powinniśmy umieścić polecenie SQL:

IF (EXIST (SELECT ID FROM _DATABASE_UPDATE_JOURNAL WHERE
DJ_DB_UPDATE_PHASE = ‘FINISHING’
AND DJ_SCRIPT_NAME = ‘[nazwa naszego skryptu]’
AND DJ_SCRIPT_EXECUTION_STATUS=’OK’)
RETURN

Zaawansowany użytkownik może również zmodyfikować paczkę instalacyjną archITekta dodając skrypty do katalogów Init_Sql!BEGIN lub Init_Sql!FINISH – zostaną one wykonane jednorazowo przy okazji najbliższej podmiany.

Więcej informacji o sposobie budowy skryptów można zdobyć z dokumentacji DBUpgrader.

Usuwanie istniejących skryptów użytkownika z poprzednich wersji aplikacji​

W trakcie aktualizacji wersji aplikacji nowe pliki z paczki importu zastępują dotychczasowe pliki z katalogów SQL i Files.

Jeśli chcemy by w trakcie kolejnych aktualizacji aplikacji nie był wykonywany już nasz skrypt SQL należy go usunąć z najbliższej paczki aktualizującej aplikację.

Zobacz również​

Konfiguracja techniczna aplikacji

Mechanizm łączenia konfiguracji

Narzędzie DatabaseUpgrader