Projekt

Obecné

Profil

Chyba #135

Aktualizováno uživatelem Ondřej Fibich před téměř 12 roky(ů)

Uchovávat v DB poslední úspěšnou provedenou změnu (tj. index pole u upgrade[n_revize]), aby nedocházelo k cyklické chybě upgradu. 

 *Příklad:* 

 +===============================+ 
 + ACCOUNTS                        + 
 +===============================+ 
 + id                              + 
 + account_attribute_id            + 
 +===============================+ 

 1. Mám dva SQL přikazy, které tvoří upgrade upgare DB revize: 

 ALTER TABLE `accounts` DROP INDEX `account_attribute_id`; 
 ALTER TABLE `accounts` DROP INDEX `account_attribute_wtf_id`; 

 2. Poprvé pustím upgrade DB. První přikaz se provede ale u druhého to spadne. 
 3. Pokusím se o upgrade znovu a teď už to spadne na prvním, takže administrátor nemá šanci odstranit chybu bez toho aby odstranil předchozí změny. 

 *Řešení:* 

 Do tabulky config ukládat společně s hodnotou revize (db_schema_version) i hodnotu milníku (db_schema_version_last_made_operation), která by se mazala před započetím nového upgradu. 

 *Problémy:* 

 Nenude jednoduché to otestovat..

Zpět