Skrípt pre prečistenie databázy – XG, DG, LTV a používateľskej tabuľky

Tento skript možno použiť pre bezpečné odstránenie obsahu z inštalácie FormFlow, teda obnovenie do jeho predvoleného stavu podľa zadaného parametra. Skript odstránite iba obsah, netýka sa nastavení.

Ide o skript umiestnený v c:\wwwroot\[FormFlow]\utils\clean_ffs_installation.php.

Použitie:

php -f cleanup_ffs_installation.php [-h] [-l logfile] [-d] [-f] [-a]

Tento skript odstráni z inštalácie FFS všetky objekty určitého typu.

-h

zobrazenie pomoci

-l logfile

tento parameter obsahuje názov súboru, do ktorého ma tento skript zapísať protokol o svojej práci

-d

vymazať všetky DG záznamy

-f

vymazať všetky formuláre (procesy)

-a

vymazať všetky záznamy zo zoznamu

Implementácie

Triedy sú v adresári htdocs\FS\Common\Cleanup. Hlavná trieda je CleanupManager, overenie práv vykonáva CleanupAuthorizator, operáciu realizuje trieda CleanupService. Konfigurácia operácie sa zadáva inštanciou triedy CleanupConfiguration.

Operácia sa musí robiť dvojkroková:

  • V prvom kroku a v db. transakcii sa odstránia záznamy, ktoré sa majú odstrániť, pozri metódu CleanupManager::cleanup().

  • V druhom kroku a mimo db. transakciu sa reštartujú sekvencie resp. IDENTITY stĺpce – viď. metóda CleanupManager::restartSequencesOrIDENTITYColumns() a skript cleanup_ffs_installation.php, v ktorom je to takto volané.

Vlastné úpravy obsahu databázy vykonávajú triedy-moduly.

  • Sú v adresári htdocs\FS\Common\Cleanup\Modules.

  • Tieto triedy sú volány z triedy CleanupService.

  • Moduly musia naimplementovať rozhranie \FS\Common\Cleanup\Modules\IModule. Mali by byť potomkom triedy \FS\Common\Cleanup\Modules\BaseModule, pretože tá trieda poskytuje metódy, ktoré sa hodia pri modifikácii obsahu databázy.

Implementované sú dva moduly:

  • \FS\Common\Cleanup\Modules\DGDocumentsModule – maže DG dokumenty.

  • \FS\Common\Cleanup\Modules\FormsModule – maže formuláre.

Všetky vyššie uvedené triedy sú službami v systémovom kontajneri – viď súbor:
htdocs\configs\DI\config.neon.

Implementácia ďalšieho modulu

  • Skontrolovať a prípadne doplniť parametre do triedy CleanupConfiguration.

  • Vytvoriť triedu-modul v adresári htdocs\FS\Common\Cleanup\Modules.

    • Musí implementovať rozhranie \FS\Common\Cleanup\Modules\IModule.

    • Mala by byť potomkom triedy \FS\Common\Cleanup\Modules\BaseModule.

    • Pridať ju do config.neon.

    • Jej prácu možno logovať pomocou triedy \FS\Common\Cleanup\CleanupLog, ktorej inštanciu dostávajú obe metódy cleanup()restartSequencesOrIDENTITYColumns().

  • Upraviť triedu CleanupService, čo mimo iné znamená, že CleanupService bude dostávať inštancii tie nové triedy-modulu vo svojom konštruktore. V metódach cleanup()restartSequencesOrIDENTITYColumns() sa musí volať príslušné metódy tie nové triedy-modulu.