Verziovanie databazy

Rexxar

Verziovanie databazy
« kdy: 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.


jehovista

Re:Verziovanie databazy
« Odpověď #1 kdy: 06. 03. 2012, 01:17:15 »
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.

dustin

Re:Verziovanie databazy
« Odpověď #2 kdy: 06. 03. 2012, 07:14:56 »
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.

Re:Verziovanie databazy
« Odpověď #3 kdy: 06. 03. 2012, 08:03:12 »
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...)

to je jedno

Re:Verziovanie databazy
« Odpověď #4 kdy: 06. 03. 2012, 09:29:41 »
asi nepouzivaji zadny DB framework v php a perou to tam napřímo.


Re:Verziovanie databazy
« Odpověď #5 kdy: 06. 03. 2012, 09:34:28 »
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?

Kit

Re:Verziovanie databazy
« Odpověď #6 kdy: 06. 03. 2012, 09:58:28 »
asi nepouzivaji zadny DB framework v php a perou to tam napřímo.

Zatím nejlepší databázový framework je pro mne PDO.

Taco

Re:Verziovanie databazy
« Odpověď #7 kdy: 06. 03. 2012, 12:54:28 »
Mám na to vytvořený program, jmenuje se to 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ě.