2.6.2. Migrace z Imwhooseru
PEVA Connector vznikl vyčleněním importu PEvA z nástroje Imwhooser. Tabulky
PEvA (pv_fund, property a fond-only část elza_queue) jsou v obou
aplikacích shodné, takže PEVA Connector umí převzít existující databázi
Imwhooseru.
Idempotentní schéma
Migrace databáze (Liquibase) jsou navržené tak, aby fungovaly ve dvou scénářích:
Nová (prázdná) databáze - schéma se vytvoří. Tabulka
elza_queuese vytvoří v „fund-only“ podobě (bez sloupceentity_id).Existující databáze Imwhooseru v „PEVA módu“ - tabulky
pv_fund,propertyielza_queuejiž existují. Liquibase je díky podmínkám (preConditions onFail="MARK_RAN") detekuje, přeskočí jejich vytváření a převezme je i s daty.
Stejný changelog tedy funguje pro čistou instalaci i pro převzetí.
Doporučený postup migrace
Vypněte stahování PEvA v Imwhooseru (
peva.processing.enabled: false) a nechte doběhnout odeslání případných čekajících fondů zelza_queue, aby fondy do Elzy posílala jen jedna aplikace.Vytvořte kopii databáze Imwhooseru a nasměrujte na ni PEVA Connector (vlastní databáze - obě aplikace nesdílejí jednu živou DB, aby se znovu nepropojily přes
elza_queue).Spusťte PEVA Connector. Idempotentní changelog převezme
pv_fund,propertyi čekající fond záznamy.Ověřte stahování z PEvA a odesílání do Elzy (viz Monitorování).
Úklid převzaté databáze
Pokud PEVA Connector převezme kopii celé databáze Imwhooseru, zůstanou
v ní i entity tabulky (imw_*) a sloupec elza_queue.entity_id, které
PEVA Connector nevyužívá. Volitelný úklidový changelog je proto vypnutý a
spustí se jen v Liquibase kontextu cleanup:
spring:
liquibase:
contexts: prod,cleanup
Úklid odstraní sloupec elza_queue.entity_id (s cizím klíčem a indexem) a -
po odkomentování v changelogu - i tabulky imw_*.
Varování
Úklid nikdy nespouštějte nad databází, kterou ještě používá Imwhooser.
Úklid na straně Imwhooseru
Po odpojení je možné v původním Imwhooseru odstranit již nevyužívané PEvA
tabulky a sloupce (pv_fund, property, elza_queue.fund_id). Tato
úprava se provádí v Imwhooseru, nikoli v PEVA Connectoru.