.install wird nicht ausgeführt
am 21.05.2011 - 11:04 Uhr in
Hallo,
Ich habe vor 2 Tagen angefangen mich mit der Modulentwicklung für Drupal zu beschäftigen und kaufte mir dahingehend ein eBook.
Nachdem ich mein erstes Modul gemäß den darin gefundenen Informationen erfolgreich programmierte, wollte ich mir auch eine automatisierte Installationsroutine für das Erstellen von Datenbank-Tabellen in einer ".install" Datei programmieren.
Doch als ich das Modul zipte, hochlud und nachschaute ob die Tabellen erstellt wurden, fand ich sie nicht.
Für mich ein Zeichen dass die Datei wohl nicht ausgeführt wurde.
Meine Datei enthält den Namen des Moduls mit angehängtem ".install" (ohne Gänsefüsschen).
Und die Routine zur Erstellung des Schemas trägt den Namen des Moduls mit angehängtem "_schema".
Gibt es eventuell noch weitere Konventionen die ich vergessen habe zu beachten?
Es erscheint beim Installieren des Moduls keine Fehlermeldung, keine Warnung oder irgendein Hinweis über dieses Problem.
Hier mal der Schema-Hook aus meiner ".install" Datei.
<?php
function staffmanagement_schema()
{
$schema ['staffmanagement_members'] = array(
'description' => 'The table of member informations.',
'fields' => array(
'memberid' => array(
'description' => 'The primary identifier for a member.',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'firstname' => array(
'description' => 'The first name of the member.',
'type' => 'varchar',
'length' => 20,
'not null' => TRUE,
'default' => '',
),
'lastname' => array(
'description' => 'The last name of the member.',
'type' => 'varchar',
'length' => 20,
'not null' => TRUE,
'default' => '',
),
'street' => array(
'description' => 'The postial address part: street',
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'default' => '',
),
'zip' => array(
'description' => 'The postial address part: zip',
'type' => 'varchar',
'length' => 5,
'not null' => TRUE,
'default' => '',
),
'city' => array(
'description' => 'The postial address part: city',
'type' => 'varchar',
'length' => 20,
'not null' => TRUE,
'default' => '',
),
'email' => array(
'description' => 'The email adress of the member.',
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'default' => '',
),
'roleid' => array(
'description' => 'ID of the role the member.',
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
),
'salary' => array(
'description' => 'Annual salary.',
'type' => 'float',
'not null' => TRUE,
),
'created' => array(
'description' => 'Member since...',
'type' => 'int',
'not null' => TRUE,
),
),
'primary key' => array('memberid')
);
$schema ['staffmanagement_roles'] = array (
'description' => 'The table of role informations.',
'fields' => array(
'roleid' => array(
'description' => 'The primary identifier for a role.',
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'salary' => array(
'description' => 'Regular annual salary.',
'type' => 'float',
'not null' => TRUE,
),
'rolename' => array(
'description' => 'The name of the role.',
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'default' => '',
),
),
'primary key' => array('roleid')
);
return $schema;
}
?>Liebe Grüsse
Marc Sven Rudolf
- Anmelden oder Registrieren um Kommentare zu schreiben

Die .install-Datei wird nur
am 21.05.2011 - 12:03 Uhr
Die .install-Datei wird nur bei der ersten Aktivierung ausgeführt oder wenn eine Update-Funktion darin enthalten ist. Am einfachsten Dein Modul noch einmal deaktivieren und dananch neu aktivieren, dann sollte .install durchlaufen werden.
Beste Grüße
Werner
Hi, ... und vielen Dank für
am 21.05.2011 - 18:11 Uhr
Hi,
... und vielen Dank für die schnelle Antwort.
Ich hab deinen Tipp beherzigt, doch ist es ohne Erfolg geblieben.
Es wird nach wie vor die Tabelle nicht installiert. :-)
LG
Marc Sven Rudolf
Knall mal eine
am 21.05.2011 - 18:39 Uhr
Knall mal eine update-Funktion in deine install-Datei, führe dort nochmal eine Schema-Installation durch und mach dann ein update über die update.php
Hi, Letztlich klappte es
am 22.05.2011 - 20:51 Uhr
Hi,
Letztlich klappte es dann.
Vielen Dank für die Hilfe.
LG
Hroudtwolf
Und wie genau hat es
am 22.05.2011 - 21:35 Uhr
Und wie genau hat es geklappt?
Übrigens, schreibe doch bitte im ersten Beitrag oben noch "[gelöst]" vor den Titel.
hook_install
am 23.05.2011 - 06:48 Uhr
Hallo.
Es wird nach wie vor die Tabelle nicht installiert. :-)
Ohne Implementierung von [api:hook_install:7] kann das Schema auch nicht angewendet werden.
Btw.: längere Code-Fragmente bitte nicht hier direkt posten sondern über pastebin oder ähnliche Anbieter.