[Gelöst] Update-Funktion in Modul/Install-Datei wird ignoriert
am 19.09.2010 - 19:11 Uhr in
Um das geänderte Schema einer neuen Version meines Moduls zum laufen zu bringen, habe ich der Install-Datei die Funktion
function meinmodul_update_6001
hinzugefügt. Es ist die erste Implementierung von hook_update_n, vorher war keine drin. In der Tabelle {system} ist denn auch bislang der Wert von schema_version gleich "0".
Wenn ich nun update.php aufrufe und zur Modulliste gehe, finde ich dort etliche installierte Module - aber nicht mein eigenes. Nicht nur nicht die Version 6001, sondern gar keinen Eintrag. Ich habe auch schon spaßeshalber die Devel-Funktion "Module reinstallieren" laufen lassen - keine Änderung (und das sollte ja auch eigentlich wegen des Datenverlusts gar nicht nötig sein, da bräuchte ich ja keine Update-Funktion).
Was, außer der Update-N-Implementierung muß denn da noch rein?
Hier mal ein paar Auszüge (beispielhaft):
1.) hook_update_n, der hier eine Spalte hinzufügen soll.
function mein_modul_update_6000() {
$ret = array();
if (!db_column_exists('mein_modul_user_settings', 'defaults')) {
$schema = array(
'type' => 'char',
'length' => '1',
'not null' => FALSE,
);
db_add_field($ret, 'mein_modul_user_settings', 'defaults', $schema);
}
return $ret;
}
Es sind in mein_modul.install außerdem noch hook_install, hook_schema und hook_uninstall implementiert (auch vorher schon, außer dem geänderten Schema in hook_schema hat sich an denen nichts geändert).
2.) Die Info-Datei
a) vorher
name = mein_modul
description = bla
core = 6.x
b) nacher (fwiw):
name = mein_modul
description = bla
core = 6.x
version = "6.x-1.1"
Was ist mein Fehler? Warum erscheint nichts in der update.php mit der Folge, daß natürlich auch die Schema-Änderung nicht erfolgt?
- Anmelden oder Registrieren um Kommentare zu schreiben
Hab ich zwar selbst noch
am 20.09.2010 - 08:30 Uhr
Hab ich zwar selbst noch nicht gemacht aber in dieser Anleitung steht, dass die eigentliche Änderung innerhalb von
mein_modul_schema()
einzutragen ist.Hast du das auch schon versucht?
-----------
Luca Curella
Kooperative Netze - Berlin
Schema geändert
am 20.09.2010 - 09:00 Uhr
Hallo, ja klar, das hab ich. Ich glaube das Problem liegt darin, daß Drupal nicht "merkt", daß sich was geändert hat - ich wüßte nur zu gerne, warum nicht...
Danke trotzdem :-)
xhtmlperljavascriptcssdelphivbaphp - und nu auch noch das!
Na dann
am 27.09.2010 - 14:52 Uhr
antworte ich mir mal selber, bzw. transkribiere von drupal.org:
Keine Großbuchstaben im Modulnamen verwenden. Wattet nicht allet gibt. Sacht einem auch keiner vorher. ;(
http://heine.familiedeelstra.com/drupal-developer-faq/update-hook-not-li...
xhtmlperljavascriptcssdelphivbaphp - und nu auch noch das!