Automatická změna struktury databáze: Porovnání verzí
Z Freenetis Wiki
Řádek 2: | Řádek 2: | ||
To je řešeno následovně: | 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 | + | #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 [http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html svn:keywords na hodnotu Revision]. | + | #ve stejném adresáři je soubor '''upgrade_sql.php''', který má nastavenu SVN property [http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html 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. |
Verze z 8. 2. 2011, 17:55
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.