Modulok és frissítések _update_X()

makgab képe

Üdv!

Egy modul írásakor a frissítésekhez készül mymodule_update_X() fv (adatbázisfrissítések).
Ha menet közben futtatom a update.php-t, akkor szépen meg is frissül a modul.
Viszont, ha a modul újonnan telepítem fel, akkor a frissítések nem futnak le. De a Drupal adatbázisban a system táblában a schema_version mégis a legutóbbi frissítés értéke kerül bele, pl. 7006. (Hibaüzenete nincs.)
Miért? Mit hibázok?
Hogyan kellene ennek működnie?
Én úgy emlékeztem, hogy egy modul újonnan történő telepítéskor az update_X() függvények is lefutnak, ami logikus is lenne.

Drupal verzió: 
makgab képe

Vagy ilyenkor a mymodule_install() fv-be bele kellene tenni az _update_X() fv-eket?

0
0
szantog képe

Már miért futna le? Szerinted egy drupal telepítéskor pl a system module majd' 80 update hookjának szaladni kellene?

hook_installban neked kell gondoskodni arról, hogy az adatbázisod a megfelelő állapotban legyen, de ezt nem a hook_update_N függvények hívogatásával kell elérned.

1
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

nevergone képe

Ennél szebben nem is lehetett volna megfogalmazni! :)

0
0
makgab képe

Hogyan kellene futtatni ezeket a frissítéseket? Nem találokrá mintát. Merre keresgéljek?

0
0
nevergone képe

Meghívod a böngészőben az update.php fájlt.

0
0
makgab képe

Annyi baj van ezzel, hogy a modultelepítés után az update-ek nem futnak le. Mégpedig azért, mert a system táblában a frissítés schema_version száma beíródik (ahogy írtam is az eredeti kérdésben). Ezért nem futtatja le.
Bár nem értem, hogy miért írja be ezt a schema verziot, ha nem futtatja le. Valószínű valamit elnézek... :(

0
0
nevergone képe

Kérlek értelmezd Gábor válaszát, minden szükséges információt megtalálsz benne.
Telepítéskor a modul a legfrissebb sémára áll, neked kell az install funkciókat szinkronban tartanod a frissítésekkel.

0
0
makgab képe

Igen, csak akkor nem értem, hogy hogyan kellene elérnem. De az _update_X() fveket "nem futtathatom". Valószínű fáradt vagyok már... :)
A _schema()-ba is tegyem bele azokat a változásokat, amik az _update_X() fv-ekben vannak?

0
0
nevergone képe

„A _schema()-ba is tegyem bele azokat a változásokat, amik az _update_X() fv-ekben vannak?”

A modulodban megvalósított install és schema függvénynek olyan állapotban kell lennie, mintha a frissítések lettek volna futtatva.

0
0
makgab képe

ok, köszönöm! ...és elnézést!
kicsit elfáradtam, nem is kérdezek többet most. :)

0
0