Fórum Root.cz
Hlavní témata => Server => Téma založeno: Rexxar 05. 03. 2012, 20:13:45
-
Zdravim,
chcel by som sa opytat ako riesite verziovanie Mysql databazy. Vyvyjame webovu aplikaciu a kazdy zakaznik ma na serveri vlastnu instanciu danej aplikacie. Problem je v tom, ked chceme migrovat niektoru instanciu na novsiu verziu. Vhodny by bol nejaky sposob, ktory meni databazu pomocou ALTER prikazov.
-
Jako nejrobustnejsi reseni co jsem zatim videl mi prislo dat informaci o verzi do DB a scripty pro zmeny spoustet automaticky primo z aplikace pri jejim startu. V aplikaci jsou pak pribaleny skripty pro veskere prechody. Kdyz teda mas aplikaci verze 3 a z DB zjistis ze je verze 1, tak udelas prechod 1->2 a 2->3. V takovem pripade pak nemusis resit nic jineho, nez nahrat novou verzi aplikace. Samozrejme to ale predpoklada, ze mas prislusna prava pro toho db usera.
-
Děláme to úplně stejně. A v tom skriptu pro přechod na jinou verzi nemusí být jen změna DB, ale i třeba změna nějakého adresáře, aktualizace nějakých datových struktur v DB či jinde apod.
-
Děláme to úplně stejně. A v tom skriptu pro přechod na jinou verzi nemusí být jen změna DB, ale i třeba změna nějakého adresáře, aktualizace nějakých datových struktur v DB či jinde apod.
A ono to jde dělat jinak? (přiznám se, že jsem dotaz moc nepochopil...)
-
asi nepouzivaji zadny DB framework v php a perou to tam napřímo.
-
asi nepouzivaji zadny DB framework v php a perou to tam napřímo.
No i tak prece potrebuji vedet, s jakou verzi struktur pracuju a jakym zpusobem muzu jednu verzi struktury prevest na jinou.
Jiste si muzu verzi struktur zapisovat jinam nez do DB, ale proc bych to delal? A stejne tak muzu jiste kod na prevod verzi struktur zapisovat jinam, nez do samotne aplikace, ale opet: proc bych to delal?
-
asi nepouzivaji zadny DB framework v php a perou to tam napřímo.
Zatím nejlepší databázový framework je pro mne PDO.
-
Mám na to vytvořený program, jmenuje se to http://taco-beru.name/schema-manage (http://taco-beru.name/schema-manage). Ten bere podle konfigurace verzi databáze a verzi schematu uloženou v repozitáři současně s kódem aplikace. Takže vždycky, když si dám hg update, tak se mi následně automaticky (hák na postcommit) zavolá i schema-manage update, a promítnou se mi tam všechny změny databázového schematu od kolegů.
Zatím jsem to využil na třech aplikacích, a průběžně vylaďuji nedostatky.
Já jsem s tím spokojený, ale já jsem autor :-) Třeba to bude k něčemu i tobě.