Datenbankschema Installieren
am 07.02.2012 - 16:11 Uhr in
Hi,
Ich habe gekürzt in meiner MODULE.install folgendes stehen:
function MODULE_schema()
{
$schema['person'] = array
(
'description' => 'Speichert Informationen über eine Person',
'fields' => array
(
// Verwaltungsinformationen.
'ID' => array
(
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
'size' => 'normal',
'description' => t('Eine einzigartige ID zur Identifizierung'),
),
),
'primary key' => array('ID'),
'unique keys' => array
(
'ID' => array('ID'),
),
'indexes' => array
(
'ID' => array('ID'),
),
);
return $schema;
}
function MODULE_install()
{
drupal_install_schema('person');
}
function MODULE_uninstall()
{
drupal_uninstall_schema('person');
}Aber Drupal legt nie eine Tabelle für mich in der Datenbank an!
Das Schema-Modul meckert mich deswegen permanent an und mein Modul funktioniert logischerweise nicht.
Natürlich könnte ich manuell die Tabelle in der MySQL-DB erzeugen, aber ist nicht gerade der Sinn der Schemas dass ich das nicht muss?
Was ist stimmt nicht?
Danke und Grüße,
Flo. :)
- Anmelden oder Registrieren um Kommentare zu schreiben

Blöde Frage ...
am 07.02.2012 - 18:41 Uhr
aber hast du in echt überall, wo hier MODULE steht, auch deinen eigenen Modulnamen eingetragen?
Jap, hab ich. Hab es jetzt so
am 09.02.2012 - 10:07 Uhr
Jap, hab ich. Hab es jetzt so gelöst dass ich kurzzeitig einen enabled-Hook dazugefügt hab, dann wurde es korrekt installiert.
Was muss den geschehen damit Drupal den Install-Hook aufruft?
Hi, der Install Hook wird
am 09.02.2012 - 11:59 Uhr
Hi,
der Install Hook wird aufgerufen wenn du das Modul
auf der Modul Seite enablest.
Du kannst es testen wenn du in der
Install Funktion ein drupal_set_message("Install called");
hinzufügst und das Modul einschaltest.
Lieber Gruss
Der hook_install wird aber
am 09.02.2012 - 13:25 Uhr
Der hook_install wird aber nur beim erstmaligen Aktivieren des Moduls ausgeführt. Wenn du es danach deaktivierst, einen hook_install einfügst und dann wieder aktivierst, wird der hook nicht aufgerufen, außer, man hat das Modul vorher deaktiviert und deinstalliert.
Devel-Modul zum Neuinstallieren von Modulen
am 09.02.2012 - 14:09 Uhr
Damit geht das sehr komfortabel.
http://drupal.org/project/devel
Ja, mein Problem war wohl
am 09.02.2012 - 14:12 Uhr
Ja, mein Problem war wohl dass ich das schema während der Entwicklung erst dazugefügt habe.
Disablen und Modul löschen, Drupal auffrischen und Modul neu hinzufügen hat nichts geholfen. Im Deinstallieren-Tab war das Modul nie aufgelistet.
hook_uninstall()
am 09.02.2012 - 15:23 Uhr
Im Deinstallieren-Tab war das Modul nie aufgelistet.
Dafür braucht's auch den entsprechenden Hook
http://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_uninstall/7