4.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.
4.2.1. 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í.
Poznámka
Pokud byl původní Imwhooser nasazen ze staršího (snapshotového) buildu,
může jeho elza_queue postrádat sloupce create_time, send_time nebo
scope (byly do Imwhooseru přidány později). Protože tabulka existuje,
přeskočí se její createTable (MARK_RAN) a tyto sloupce by jinak
chyběly - projeví se to při startu chybou column ... create_time does not
exist. Idempotentní changelog je proto doplní samostatnými addColumn
kroky (stejně jako u pv_fund.department_name / department_number),
takže převzetí snapshotové databáze funguje bez ručního zásahu.
4.2.2. 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í).
4.2.3. Úklid převzaté databáze
PEVA Connector je samostatná, odlehčená aplikace a entity-side schéma
Imwhooseru (tabulky imw_* / *_person a sloupec elza_queue.entity_id)
nevlastní ani nevyužívá. Při převzetí databáze je proto automaticky a nevratně
odstraní - úklidový changelog se spustí vždy při startu, bez nutnosti
zvláštního nastavení. Jde o trvalé „odpojení“ od Imwhooseru.
Konkrétně se odstraní:
sloupec
elza_queue.entity_id(včetně cizího klíče a indexu),tabulky
imw_*/*_person(entity-side schéma Imwhooseru).
Každý krok je idempotentní (preConditions onFail="MARK_RAN"): na čisté nebo
již uklizené databázi se přeskočí, takže opakované starty ani nová instalace
ničemu nevadí.
Varování
Úklid je nevratný a běží automaticky při prvním startu nad převzatou databází. Migrujte proto vždy nad kopií databáze (viz doporučený postup výše) a nikdy nesměřujte PEVA Connector na živou databázi, kterou ještě používá Imwhooser.
4.2.4. Ú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.