Automatická změna struktury databáze
Z Freenetis Wiki
Protože při vývoji Freenetisu se neustále mění také struktura databáze, umí Freenetis po stažení nové verze z svn (příkaz "svn update") automaticky sám provést upgrade struktury databáze tak, aby původní obsah databáze zůstal nepoškozen.
To je řešeno následovně:
- v adresáři kohana/application/upgrade_sql jsou soubory upgrade_sql_XXX.php, který obsahuje SQL dotazy pro update databázové struktury z SVN verze XXX na novější SVN verzi
- ve stejném adresáři je soubor upgrade_sql.php, který má nastavenu SVN property svn:keywords na hodnotu Revision.
PHP autoupdate funkce
V nejnutnějších případech lze pro upgrade databáze použit i PHP (pokud nelze vykonat upgrade jen pomocí SQL).
Do souborů upgrade_sql_XXX.php / upgrade_sql.php lze přidat funkce bool upgrade_sql_XXX_before(void), bool upgrade_sql_XXX_after(void) / bool upgrade_sql_before(void), bool upgrade_sql_after(void).
Funkce before je volána před započetím vykonávání upgrade SQL scriptů, after po jejich provedení. Funkce musí vracet pravdivostní hodnotu.