Frage

habe ich ein Problem mit Drupal 7-Schema für das Modul. Es gibt 4 Tabellen, aber für Probe 2 wird ausreichen, um:

function mymodule_schema() {
$schema['series'] = array(
    'fields' => array(
        'id' => array(
            'type' => 'serial',
            'unsigned' => true,
            'not null' => true,
        ),
        'name' => array(
            'type' => 'varchar',
            'length' => 255,
            'not null' => true,
        ),
    ),
    'unique keys' => array(
        'name' => array('name'),
    ),
    'primary key' => array('id'),
);

$schema['sermon'] = array(
    'fields' => array(
        'id' => array(
            'type' => 'serial',
            'unsigned' => true,
            'not null' => true,
        ),
        'title' => array(
            'type' => 'varchar',
            'length' => 255,
            'not null' => true,
        ),
        'series_id' => array(
            'type' => 'int',
        ),
    ),
    'foreign keys' => array(
        'series_id' => array(
            'table' => 'series',
            'columns' => array('series_id' => 'id'),
        ),
    ),
    'primary key' => array('id'),
);
return $schema;
}

Dieser Code Tabellen erstellen, aber keine Fremdschlüssel. Beispiel für die Umsetzung komme ich von Drupal.org: http://drupal.org/node/146939

Drupal-Version 7.0-beta 3 ..Als Idee. Vielleicht, es ist noch nicht implementiert, ich sehe es nicht in node Tabelle (Dokumentation Beispiel zeigen Sie auf Code von ihm des Installateurs)

Danke für Ihre Hilfe.

War es hilfreich?

Lösung

Nach diesen Beitrag , gerade vor ein paar Monaten, die hook_schema Funktion nicht implementiert die Schaffung fremde Schlüssel. Es kann jedoch anhand bestehenden.

Vielleicht eine Behelfslösung wäre, die Fremdschlüssel schöpf SQL in hook_init (oder eine der anderen API-Methoden) laufen. Leider scheint es nicht eine bessere Lösung dieses Recht jetzt.

Andere Tipps

Sie haben die richtige Idee, dies noch nicht implementiert ist: /

Ich habe keine Ahnung, warum sie dies nicht deutlich anzugeben, aber anscheinend sind die Fremdschlüssel Erklärungen zu Dokumentationszwecken nur im Moment (und Vorbereitung etwas Nützliches mit ihnen später zu tun, zumindest würde man hoffen, so).

Siehe dieser Kommentar und unterhalb auf die (fälschlich) thread 'Fremdschlüssel Kern hinzufügen'

Dies ist eine sehr alte Post, aber als Referenz Dies kann helfen,

'foreign keys' => array(
    'series_id' => array(
        'table' => 'series',
        'columns' => array('id' => 'series_id'),
    ),
),
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top