hook_install
Eingetragen von Neuling08 (22)
am 12.01.2009 - 03:40 Uhr in
am 12.01.2009 - 03:40 Uhr in
Hallo,
sorry wenn ich noch was frage, aber ich habe noch ein Problem.
In meinem Modul funktioniert der hook_install nicht und ich weiß nicht warum.
Ich habe hook_install und hook_schema in eine Datei modulname.install geschrieben, aber es wird einfach keine neue Tabelle installiert. Es taucht auch keine Fehlermeldung auf die mir eventuell weiterhelfen könnte. Es passiert einfach nur gar nichts.
Kann mir jemand sagen was ich falsch mache?
- Anmelden oder Registrieren um Kommentare zu schreiben
Kannst du aus dem Modul
am 12.01.2009 - 10:16 Uhr
Kannst du aus dem Modul heraus direkt per SQL eine Tabelle anlegen?
-----------
Luca Curella
Kooperative Netze - Berlin
Hallo, im Ecard Modul ist
am 12.01.2009 - 10:24 Uhr
Hallo,
im Ecard Modul ist das so gelößt:
<?php
function ecard_install() {
drupal_install_schema('ecard');
}
function ecard_schema() {
//Schema
}
?>
Rufst du im hook_install das Schema denn auf? Sonst poste doch mal einen Ausschnitt deiner Datei?
---
Viele Grüße,
Kars-T
Viele Grüße,
Kars-T
Codeschnipsel
am 12.01.2009 - 11:34 Uhr
Ein kleiner Ausschnitt:
<?php
function test_install() {
drupal_install_schema('test');
}
function test_uninstall() {
drupal_uninstall_schema('test');
}
function test_schema() {
$schema['test'] = array(
'fields' => array(
'vid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'nid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'mytext' => array(
'type' => 'text',
'not null' => FALSE,
),
'indexes' => array(
'nid' => array('nid'),
),
'primary key' => array('vid'),
);
return $schema;
}
?>
Also das funktioniert irgendwie nicht. Ich könnte auch per PHP mit CREATE TABLE eine Tabelle erzeugen, aber das ist doch nicht Sinn der Sache oder?
Sieht gut aus und mach das
am 12.01.2009 - 11:46 Uhr
Sieht gut aus und mach das bloß nicht anders ;)
http://drupal.org/node/323314
Vielleicht: Du hast das Modul schon mal aktiviert und dann einfach immer nur wieder aktiviert und reaktiviert? Du musst es deinstallieren und reinstallieren, da der Hook sonst nicht greift.
Oder versuch doch mal Updates zu machen ob die Hooks dann dein Schema durchgehen?
---
Viele Grüße,
Kars-T
Viele Grüße,
Kars-T
Also ich hab das Modul schon
am 12.01.2009 - 11:55 Uhr
Also ich hab das Modul schon einmal installiert und wieder deinstalliert. Weil die Tabelle aber noch in der Datenbank war habe ich sie per Hand gelöscht. Ist das ein Problem?
Ich weiß aber auch nicht mehr wie ich die Tabelle damals erstellt habe. Mit SQL Befehl oder Drupal...
Wenn das ein Problem ist,
am 12.01.2009 - 12:14 Uhr
Wenn das ein Problem ist, wirst du das einfach sehen. Drupal müsste ja versuchen anhand des Schemas SQL Befehle auszuführen. Wenn ein Befehl nicht greift gibt es eine Warnung. Nicht mehr und nicht weniger.
Es sieht also aus, als wenn hook_install und hook_uninstall einfach nicht laufen.
Das einzige was ich mir dazu noch denken könnte ist: Namen der Dateien überprüfen, deinstallieren, Tabellen von Hand löschen, reinstallieren.
Dann sollte es gehen. Sonst mal ein neues Drupal aufsetzen und damit versuchen.
---
Viele Grüße,
Kars-T
Viele Grüße,
Kars-T
Mein Vorschlag mit dem
am 12.01.2009 - 16:06 Uhr
Mein Vorschlag mit dem direkten SQL war nur zu Testzwecken gedacht. Um zu checken ob du vielleicht ein grundsätzlicheres Problem mit der DB/Webserver hast und dann evt. eine Fehlermeldung bekommst...
-----------
Luca Curella
Kooperative Netze - Berlin
ok
am 12.01.2009 - 20:23 Uhr
Ich habe das Modul nun mehrmals aktiviert, deaktiviert, installiert und deinstalliert und es funktioniert. Die Tabelle wird bei der Installation erstellt und bei der Deinstallation wieder gelöscht. Prima!
Ich danke euch vielmals für die Antworten!
Ist schon beruhigend wenn auf einmal alles funktioniert. :-)