Autor Zpráva
Filip111
Profil
Jakým způsobem provádíte synchronizaci struktury databáze mezi lokálním vývojem a serverem, kde běží celá aplikace s ostrými daty?
V poslední době pracuji na jednoduché aplikaci s cca 60-ti tabulkama, protože se teprve začíná rozbíhat testovací provoz (nicméně již s ostrými daty), je potřeba nezřídkakdy upravit strukturu některých tabulek. Kromě toho stále pokračuje vývoj, takže vzniká spoustu nových tabulek nebo i sloupců ve stávajících.

Lokálně vytvářím strukturu DB v programu DBDesigner - co jsem si na něj zvykl je to naprosto výbornej program (občas sice spadne ale s tím se dá žít). A co je nelepší, umí synchronizovat strukturu DB - prostě všechny změny promítne do existující DB a zachová přitom data.
Problém je, že hosting, kde aplikace běží nedovolí připojení do MySQL z venku, takže tohle nelze použít.

Jak s tím bojujete vy? Děláte si nějaký scripty s verzováním kde jsou jednotlivé alter table apod.? (ruční klikačku znam, tu poradit nepotřebuju...u ní je nejhorší, že člověk si nikdy nevzpomene na všechny změny a pak se liší DB na serveru a na vývoji).

(prozatím mě napadá jediné řešení - stáhnout DB ze serveru, hodit na localhost, sesynchronizovat strukturu a zase vrátit na server...je to zatím neméně bolestivé řešení, ale pořád to není ono).

Díky za nějaké to hnowhow.
Kajman_
Profil *
Není nejjednodušší poprosit hosting, aby povolil přístup do mysql z nějaké Vaší konkrétní ip?

Ale i tak bych zkusil vždy "stáhnout DB ze serveru, hodit na localhost, sesynchronizovat strukturu", jestli to syncne dobře. A jestli ten dbd umí při tom ty prováděné změny i vypsat, tak jen stačí ty altery zkopírovat a spustit jiným způsobem.
TomášK
Profil
Používám Ruby on Rails, které mají v sobě zabudované verzování databáze - když chci změnu struktury, napíšu pár řádek a on vytvoří potřebné ALTERy pro přechod na novou strukturu a i z nové struktury zpět na starou, kdyby nastal problém. Nepředpokládám, že byste začal používat rails, ale ten model skriptů pro 'migraci' databáze se mi zdá šikovný. Každá migrace má své číslo (zřejmě timestamp, kdy byla vytvořena) a v databázi se ukládá, jaké migrace byly provedeny, aby šly vytvořit příkazy 'migruj na další', 'migruj na předchozí', 'migruj na nejnovější' apod.

Nedávno jsem řešil synchronizaci dat - když na ostré verzi něco přestane fungovat, chtěl bych si ostrou databázi stáhnout a vyvíjet na ní. Databáze je moc velká na to, abych ji exportoval celou a tahal pokaždé znova. To jsem vyřešil pomocí mysqldump a rsync, který funguje dobře - tahá jen rozdíly. Do své databáze jen přidávám data, téměř nikdy nemažu, nevím, jestli by si poradil i s mazáním.
Filip111
Profil
Kajman_
změny bohužel nevypisuje
Pípni má někde v manuálu přímo napsáno, že nepovoluje přístup do DB zvenku ani na požádání (pravda je, že jsem se nezkoušel zeptat)

TomášK
Ruby asi opravdu nezačnu používat jen tak z čista jasna..nicméně, někdy v budoucnu jsem je chtěl zkusit
mysqldump a rsync mi asi nepomůže, pokud nemám na serveru přístup do shellu...ale zkusim něco bližšího vygooglit
Kajman_
Profil *
Tak to zvažte, jestli nestojí o změnu hostingu, když se nedostane přímo do db ani do shelu :-) Nebo najít sw, který ty altery umí nejen vygenerovat ale i zobrazit (nejsem si jistý, zda-li to neumí i mysql workbench).
Filip111
Profil
Pro začátek jsem zkusil dotaz na pípni, tak uvidíme co z nich vypadne...jestli vůbec.
Jiný hosting pro tento web nepřichází příliš v úvahu, ale přinejhorším si přesměruji někam alespoň potřebnou subdoménu.

Každopádně mě minimálně zaujala funkcionalita Ruby on Rails :)
Filip111
Profil
Tak pipni se trochu pochlapili a kupodivu jim přístup do DB zvenku funguje...akorát jsou to lemplové a nedokážou ani udžet FAQ. V jednom příspěvku (z 18-ti o DB) říkaji, že připojení zvenku není a nebude možné a hned asi o 3 níž je návod jak na to.
Acho jo...

Nicméně mají hned další mínus...nepodařilo se mi připojit přes mysqlt nebo mysqli ale pouze mysql,
nefungují triggery (resp nejdou vytvořit, chce to to oprávnění SUPER).

Alespoň jeden problém z krku.
Kajman_
Profil *
Jo na triggry je normální právo až od verze 5.1. Super právo Vám nedají, ale můžou vytovřit odladěný trigger jako root hodní admini.
tiso
Profil
Filip111: môžeš vyskúšať čerstvé riešenie z http://php.vrana.cz/adminer-2-1-0.php
Filip111
Profil
Adminer jsem zrovn apřed pár dny zkoušel, ale říkal jsem si že když už se člověk konečně trochu naučil používat phpMyAdmina, že to zatím dám k ledu...každpádně na možnost synchronizace se podívám (teď jsem to sice vyřešil ale na jiným hostingu bych mohl narazit).

Na triggery mi podpora odpověděla, že mam smůlu...prostě to nepodporujou, stejně jako tabulky InnoDB s transakcema v MySQL.
Portovat aplikaci na jinou DB se mi nechce i když s ADODB by to možná nebyl zase takovej problém - každopádně triggery pro 100%ní fci potřebuju a InnoDB s referencema a transakcema by se sakra hodily.

(mj. hodní admini by mi moooožná jedno u vyhověli, ale s rozšiřováním apl. se budou i triggery občas měnit a dost pochybuju, že by mi vycházeli vstříc každej tejden :)

Asi budu muset utect na VPS...
woodyssss
Profil *
online sychronizace mysql db http://dbsynch.g6.cz/

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: