У меня проблема с схемой Drupal 7 для модуля. Есть 4 таблицы, но для образца 2 будет достаточно:Внешние ключи в Drupal 7 ошибка схемы
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;
}
Этот код создает таблицы, но не внешние ключи. Пример реализации, я получаю от Drupal.org: http://drupal.org/node/146939
Drupal версии 7.0 бета 3 ..As мысль: может быть, это еще не реализовано, я не вижу его в node
таблице (документация пример точки для кода из его установщика).
Благодарим за помощь.
Единственное, что я могу думать о том, что, возможно, 'id' не может быть однозначно определены в запросе. Вы можете изменить sermon.id на 'sermon_id' и series.id на' series_id' или что-то в этом роде. Теперь мне любопытно, дайте мне знать, что работает! :) –
zourtney, я попробую вчера (теперь это ночь для меня), но даже если это проблема (это странно, table + fieldname должно быть достаточно, а необработанный SQL-оператор делает эту работу правильной) Мне нужно решение для правильных имен потому что схема предоставляется третьей стороной, и я просто не мог ее изменить при производстве. – lifecoder
Хорошо, забудьте эту идею; Наверное, на самом деле это не реализовано Drupal. Я сделал сообщение ниже. Я помню, как некоторое время назад сталкивался с этим вопросом. Кажется, я неправильно вспомнил «решение». –