Mechanika wdrożenia
Strona uzupełnia Wdrożenie o szczegóły mechaniki: zadania Gradle, ścieżki changelogów i skrypty pomocnicze.
Zadania Gradle
Zdefiniowane w build.gradle. Dwie grupy:
Wdrożenie (update)
dev,preprod,prod,apexprod— uruchamiają Liquibase zchangelog/master.xmlna danym środowisku.installApexApps— import aplikacji APEX przez SQLcl, na baziechangelog/latest/6_applications.sql(skrypt_exec/lbupdate.sql), z weryfikacją braku błędów.
Podgląd / status (status read)
dev_conn,preprod_conn,prod_conn— używająchangelog/master_preview_only.xmli zapisują wynik dopreview_update_sql.sql(bez wdrażania).read— wypisuje listę aplikacji APEX wraz ze statusem włączenia z6_applications.sql.
Zmienne ścieżek w build.gradle:
changeLogFilePath = ./changelog/master.xml # wdrożenie
changeLogFilePath_status = ./changelog/master_preview_only.xml # podgląd
applicationsChangelogPath = ./changelog/latest/6_applications.sql # aplikacje APEX
Łańcuch changelogów Liquibase
changelog/master.xml dołącza po kolei:
install/1_changelog_struct.xml— tabele ialter_object/(m.in. tworzenie MV).install/2_changelog_constraints.xml— klucze obce, unikalność, check.install/3_changelog_objects.xml— indeksy, widoki, zadania harmonogramu.install/4_changelog_data.xml— dane słownikowe/konfiguracyjne (INSERT/UPDATE).latest/5_changelog_db.xml— najnowsze zmiany obiektów bazy.
Następnie skrypty post-build/ (jako runAlways):
get_git_history.sql— zapis historii Git do bazy (p_get_git_history); bywa wyłączony placeholderem.replication_notifier.sql— wysyła e-mail o zmianach w strukturach replikowanych (changesety z kontekstemGOreplz ostatnich ~10 min) przezAPEX_MAIL.compile_schema.sql— rekompilacja schematuVAN_DATApo zmianach; bywa zakomentowany.
master_preview_only.xml zawiera ten sam łańcuch install/* + 5_changelog_db.xml, ale bez instalacji aplikacji APEX i bez skryptów post-build/. Dlatego nadaje się do bezpiecznego podglądu (status).Wybór aplikacji APEX
changelog/latest/6_applications.sql to plik-przełącznik. Każda aplikacja to linia @../../apex/f<ID>/install.sql:
-- @../../apex/f1/install.sql -- WYŁĄCZONA (komentarz SQL, SQLcl pomija)
@../../apex/f11700/install.sql -- WŁĄCZONA (zostanie zainstalowana)
installApexApps wykonuje tylko linie odkomentowane. Zwykle większość aplikacji jest wyłączona, a włączone są tylko te objęte bieżącym wdrożeniem.
Środowiska
| Środowisko | Host / Port / Serwis | Hasło |
|---|---|---|
dev | 192.168.0.53:6021 / pdb_dev.podlasie | zmienna $VDATAPW |
preprod | 192.168.0.53:6021 / pdb_preprod.podlasie | zmienna $VDATAPWPPR |
prod | 192.168.0.52:5021 / pdb_prod.podlasie | zmienna $VDATAPWPR |
apexprod | 192.168.0.52:5021 / pdb_apex.podlasie | wpisane w skrypcie |
Użytkownik bazy: VAN_DATA.
dev/preprod/prod pochodzą ze zmiennych środowiskowych, ale zadanie apexprod oraz liquibase.properties zawierają hasło wpisane na stałe, a w build.gradle w komentarzach bywają klucze licencyjne. To sekrety do wycofania do sejfu — zob. Uwagi i ryzyka. Powiadomienie replication_notifier.sql zawiera też zaszytą listę adresów e-mail.Skrypty gałęzi (_exec/)
Archiwizacja gałęzi do tagu i jej usunięcie:
# arch_branch.sh <branch>
git tag archive/$1 $1 # tag-backup
git push --tags
git branch -d $1 # usunięcie lokalnie
git branch -d -r origin/$1
git push origin :$1 # usunięcie na zdalnym
Przywrócenie zarchiwizowanej gałęzi:
# restore_branch.sh <branch>
git checkout -b $1 archive/$1
Zadania harmonogramu
Zadania DBMS_SCHEDULER systemu EVAN — synchronizacje, fakturowanie, KSeF, odświeżanie widoków i monitoring.
Podatność na kradzież
Przekrojowy atrybut towaru „podatność na kradzież” — słownik S_PODATNOSC_NA_KRADZIEZ, wartości domyślne, zapis na zleceniu oraz użycie w tenderze, na kontrahencie i w umowach CRM.