Skript pro pročištění databáze – XG, DG, LTV a uživatelské tabulky
Tento skript lze použít pro bezpečné odstranění obsahu z instalace FormFlow, tedy obnovení do jeho výchozího stavu dle zadaného parametru. Skript odstraní pouze obsah, netýká se nastavení.
Jedná se o skript umístěný v c:\wwwroot\[FormFlow]\utils\clean_ffs_installation.php.
Použití:
php -f cleanup_ffs_installation.php [-h] [-l logfile] [-d] [-f] [-a]
Tento skript odstraní z instalace FFS všechny objekty určitého typu.
-h |
zobrazení nápovědy |
-l logfile |
tento parametr obsahuje název souboru, do kterého má tento skript zapsat protokol o své práci |
-d |
vymazat všechny DG dokumenty |
-f |
vymazat všechny formuláře (procesy) |
-a |
vymazat všechny záznamy z adresáře |
Implementace
Třídy jsou v adresáři htdocs\FS\Common\Cleanup.
Hlavní třída je CleanupManager, ověření práv provádí CleanupAuthorizator, operaci provádí třída CleanupService.
Konfigurace operace se zadává instancí třídy CleanupConfiguration.
Operace se musí provádět dvoukrokově:
-
V prvním kroku a v databázové transakci se odstraní záznamy, které se mají odstranit: viz metoda
CleanupManager::cleanup(). -
Ve druhém kroku a mimo databázovou transakci se restartují sekvence resp. IDENTITY sloupce – viz metoda:
CleanupManager::restartSequencesOrIDENTITYColumns()a také skriptcleanup_ffs_installation.php, ve kterém je to takto voláno.
Vlastní úpravy obsahu databáze provádějí třídy-moduly.
-
Jsou v adresáři
htdocs\FS\Common\Cleanup\Modules. -
Tyto třídy jsou volány ze třídy:
CleanupService -
Moduly musí implementovat rozhraní:
\FS\Common\Cleanup\Modules\IModule -
Měly by být potomkem třídy:
\FS\Common\Cleanup\Modules\BaseModule, protože tato třída poskytuje metody, které se hodí při modifikaci obsahu databáze.
Implementovány jsou dva moduly:
-
\FS\Common\Cleanup\Modules\DGDocumentsModule– maže DG dokumenty. -
\FS\Common\Cleanup\Modules\FormsModule– maže formuláře.
Všechny výše uvedené třídy jsou službami v systémovém kontejneru – viz soubor: htdocs\configs\DI\config.neon.
Implementace dalšího modulu
-
Zkontrolujte a případně doplňte parametry do třídy
CleanupConfiguration. -
Vytvořte třídu-modul v adresáři
htdocs\FS\Common\Cleanup\Modules.-
Musí implementovat rozhraní
\FS\Common\Cleanup\Modules\IModule. -
Měla by být potomkem třídy
\FS\Common\Cleanup\Modules\BaseModule. -
Přidejte ji do
config.neon. -
Její práci lze logovat pomocí třídy
\FS\Common\Cleanup\CleanupLog, jejíž instanci dostávají obě metodycleanup()irestartSequencesOrIDENTITYColumns().
-
-
Upravte třídu
CleanupService, což mimo jiné znamená, že CleanupService bude dostávat instanci té nové třídy-modulu ve svém konstruktoru. V metodáchcleanup()arestartSequencesOrIDENTITYColumns()se musí volat příslušné metody té nové třídy-modulu.