DB migrace a Composer balíčky
- jannek19
- Člen | 47
Zdravím,
píšu menší aplikaci (něco jako základ „informačního systému“),
kterou je možné rozšířit pomocí rozšíření, což jsou prostě balíčky
instalované přes Composer, které rozšíří aplikaci o nějakou
funkcionalitu (pomocí CompilerExtension). Rád bych na tomto projektu použil
nějakou formu DB migrací – nyní si ukládám změnové soubory do složky
sql
a pak je postupně vykonávám na serveru (přes PhpMyAdmin).
To samozřejmě vůbec není ideální. Postupně bych chtěl migrace použít
i na ostatních projektech – většinou používají Nette\Database,
LeanMapper, či čisté dibi.
Pokukoval jsem po různých projektech a zatím nejvíc se mi líbí nextras/migrations
.
Se základem aplikace není problém, změnové SQL soubor prostě umístím do
složky migrations
a pak by mělo stačit spustit migrace na
serveru (přes URL), co mi ale není jasné je to, jak přinutit
nextras/migrations
, aby mi zpracovalo i migrace, které budou
umístěny u jednotlivých balíčků ve složce vendor
. Je to
vůbec dobrý nápad?
Dokázali byste mi poradit, případně místo
nextras/migrations
doporučili něco jiného? Rád bych se vyhnul
psaní vlastního řešení a taky nemám přístup k příkazové řádce na
serveru (⇒ migrace musí být možné spustit přes URL při deploymentu).
Zkoušel jsem Googlit i procházet toto fórum, ale asi se špatně ptám, protože jsem nic nenašel :-(
Díky moc!
- castamir
- Člen | 629
IMHO neni dobry napad vyuzivat externi migrace z jinych projektu, uz z duvodu moznych konfliktu, pouziti ruznych typu databazi v sql skriptech apod. To si to radeji zarad do svych migraci, at to muzes i lip testovat (migrace ve vendor se ti mohou aktualizaci knihovny zmenit a co potom?). Taky neni uplne dobre resit tento problem pres url, pristup na server uz je ted v podstate zaklad (viz treba instalace zavislosti pres composer).
Mam dobre zkusenosti s tim si zmeny v databazi nechat vygenerovat na zaklade kodu (entit) a pouze pridavat napr inserty/update/delete zaznamu do ciselniku popr podobne udrzovat databazovou bussines logiku.
- jannek19
- Člen | 47
Díky za odpověď.
Předpokládám, že těch rozšíření nebude tolik a hlavně nad nimi budu mít kontrolu, takže by konflikty či změny po aktualizaci vendor složky, hrozit neměly. Ale je pravda, že by k tomu dojít mohlo.
Nad generováním změn z entit jsem ještě nepřemýšlel, možná by to bylo lepší řešení. Budu to asi muset ještě víc promyslet :)
Ještě jednou díky.