Automatická změna struktury databáze

Z Freenetis Wiki
Přejít na: navigace, hledání

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ě:

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