DB migrace a Composer balíčky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jannek19
Člen | 47
+
0
-

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
+
+1
-

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
+
0
-

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.