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_queue se vytvoří v „fund-only“ podobě (bez sloupce entity_id).

  • Existující databáze Imwhooseru v „PEVA módu“ - tabulky pv_fund, property i elza_queue již 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

  1. Vypněte stahování PEvA v Imwhooseru (peva.processing.enabled: false) a nechte doběhnout odeslání případných čekajících fondů z elza_queue, aby fondy do Elzy posílala jen jedna aplikace.

  2. 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).

  3. Spusťte PEVA Connector. Idempotentní changelog převezme pv_fund, property i čekající fond záznamy.

  4. 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.