Datenbank erstellen
am 30.11.2008 - 20:29 Uhr in
Hallo,
ich habe ein Problem beim programmieren eines Moduls. Ich möchte im .install File eine Datenbank erstellen, aber es funktioniert einfach nicht.
Kann mir jemand sagen wo das Problem liegt?
// $Id$
function nationalspieler_install() {
drupal_install_schema('nationalspieler');
}
function nationalspieler_uninstall() {
drupal_uninstall_schema('nationalspieler');
}
function nationalspieler_schema() {
$schema['nationalspieler'] = 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,
),
'nachname' => array(
'type' => 'text',
'length' => 47,
'not null' => TRUE,
),
'vorname' => array(
'type' => 'text',
'length' => 47,
'not null' => TRUE,
), // ...
),
'indexes' => array(
'nid' => array('nid'),
),
'primary key' => array('vid'),
);
return $schema;
}Vielen Dank!
EDIT: ich habe nun eine Datenbank per Hand installiert. Nun funktioniert mein Modul. Aber das geht doch auch anders, oder?
- Anmelden oder Registrieren um Kommentare zu schreiben

Datenbank muss schon vorhanden sein
am 01.12.2008 - 20:12 Uhr
.intall-Dateien legen nur Tabellen in einer vorhandenen Datenbank an. Die Datenbank muss schon vorher vorhanden sein. (So wie auch bei der Drupal-Installation.)
Frank
Ach so! Und kannst du mir
am 01.12.2008 - 23:02 Uhr
Ach so!
Und kannst du mir auch sagen wie man solche Datenbanken mit einem Modul erstellt?
Das gibt's glaube ich bis D6 nicht
am 01.12.2008 - 23:06 Uhr
Bis zu Version D6 habe ich noch kein solches Modul gesehen. mach dich mal in der Doku deines Hosters schlau, wenn lokal installiert kannst Du die Infos auf http://drupal.cocoate.com finden.
Gruss Roger
Diese Frage ist der Widersinn des Jahres auf DrupalCenter.
am 01.12.2008 - 23:52 Uhr
Und kannst du mir auch sagen wie man solche Datenbanken mit einem Modul erstellt?
Diese Frage ist der Widersinn des Jahres auf DrupalCenter.
Um ein Drupalmodul verwenden zu können benötigt man ein installiertes Drupal. Um Drupal verwenden zu können benötigt man eine installierte Datenbank.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Nun ja, ...
am 02.12.2008 - 10:19 Uhr
prinzipiell könnte man sich schon vorstellen, dass eine Drupal-Installation eine weitere Datenbank anlegt, um dort z.B. Nodes eines bestimmten Typs zu speichern. Vielleicht gibt es Szenarien, wo das aus Backup- oder Performancegründen sinnvoll wäre.
Aber eine Datenbank "lebt" getrennt auf einem eigenen Datenbankserver (oft MySQL), und da hat eine PHP-Anwendung wie Drupal, die auf einem Webserver läuft (oft Apache), nichts zu melden, sprich keine Rechte, eine Datenbank anzulegen (zumindest sollte das aus Sicherheitsgründen so sein).
Frank
Falsch ausgedrückt
am 02.12.2008 - 10:51 Uhr
Oh. Ich habe mich falsch ausgedrückt.
Ich meinte wie erstelle ich die Tabelle "nationalspieler" in meiner vorhandenen Datenbank? Ich dachte das würde mit der .install Datei funktionieren.
(Sorry, hab mit SQL und PHP erst seit 2 Monaten zu tun)
Neue Tabelle in DB
am 02.12.2008 - 11:30 Uhr
Also wenn ich dich jetzt richtig verstehe hast Du bereits eine Drupal-Installation mit zugehöriger DB. Wenn dem so ist, frage ich mich wofür du eine neue Tabelle erstellen willst. Für mich hört es sich so an, als würdest Du einen neuen NodeTyp brauchen für die Nationalspieler. Evtl auch nur ein Neues Feld im NodeTyp bei welchem du ein Häckchen setzt, ob es sich um einen Nationalspieler handelt oder nicht. Wenn Du das Design der NodeTypen mit CCK machst, dann macht Drupal das alles selbst, und du brauchst nicht in der DB manuell rumzupfuschen.
Leider ==>
Gruss Roger
Rabbit69 schrieb Also wenn
am 02.12.2008 - 14:04 Uhr
Also wenn ich dich jetzt richtig verstehe hast Du bereits eine Drupal-Installation mit zugehöriger DB.
Stimmt!
Für mich hört es sich so an, als würdest Du einen neuen NodeTyp brauchen für die Nationalspieler.
Stimmt auch!
Wenn Du das Design der NodeTypen mit CCK machst, dann macht Drupal das alles selbst, und du brauchst nicht in der DB manuell rumzupfuschen.
Hab leider keine Ahnung was CCK ist. :-(
Ich möchte das zunächst alles manuell erlernen, damit ich mehr Ahnung von Drupal habe. D.h. ich möchte auch die Node Typen manuell erstellen, also mit selbst geschriebenen Code.
Ich möchte den Node Type "nationalspieler" (das ist nur ein simples Beispiel) erstellen, aber der hat weitere Elemente als einen Titel und einen Textkörper. So weit ich weiß bekomme ich das nur mit einem neuen Inhalt mit dazugehöriger neuer Tabelle hin.
Neuling08 schriebHab
am 02.12.2008 - 14:23 Uhr
Hab leider keine Ahnung was CCK ist. :-(
Versuchs mal damit: http://drupal.org/project/cck
Ich möchte das zunächst alles manuell erlernen, damit ich mehr Ahnung von Drupal habe. D.h. ich möchte auch die Node Typen manuell erstellen, also mit selbst geschriebenen Code.
Na dann kannst Du dir ja gleich selbst ein CMS programieren.
Ich bin halt der Meinung, das ich die Zeit besser nutzen kann als das Rad neu zu erfinden.
Ich möchte den Node Type "nationalspieler" (das ist nur ein simples Beispiel) erstellen, aber der hat weitere Elemente als einen Titel und einen Textkörper. So weit ich weiß bekomme ich das nur mit einem neuen Inhalt mit dazugehöriger neuer Tabelle hin.
==> CCK ist genau dafür gemacht. Und Views gehört auch noch zu den Beinahe-Pflicht-Modulen
Gruss Roger
So erfindet man das Rad neu
am 02.12.2008 - 16:29 Uhr
Hier steht, wie das geht:
Create new content-type for Drupal 6.x
http://drupal.org/node/231019
Inklusive des berechtigten Hinweises:
Before creating a new node type, first decide if you really need to create a new one: if you can use CCK and Views to gather and manipulate your data, you may not need this tutorial.
Frank