Как создать таблицу при установке модуля


14

Я пытаюсь создать модуль для Drupal 7, и мне нужно создать 3 таблицы и заполнить его. Но сначала мне нужно его создать.

В файле mymodule.install я получил

function mymodule_install() {

}

function mymodule_uninstall() {

}


function myodule_schema() {
  $schema['mymodule_table'] = array(
    'description' => t('First table'),
    'fields' => array(
      'id' => array(
        'description' => t('My unique identifier'),
        'type' => 'int',
        'unsigned' => true,
        'not null' => true,
      ),
      'list' => array(
        'description' => t('list'),
        'type' => 'varchar',
        'not null' => true,
      ),
    ),
    'primary key' => array('id'),
  );
  return $schema;     
}

Что я делаю неправильно? Каждый раз, когда я тестирую модуль, я отключаю его -> удалить -> кэш очистки производительности -> включить его.


3
Если у вас установлены программы drush и devel, вы можете drush devel-reinstall mymoduleбыстро переустановить модуль
FLY

Ответы:


11

Вам не хватает lengthсвойства для varcharстолбца («список»). lengthтребуется, поэтому CREATE TABLEзапрос не будет выполнен.

Из документации API схемы :

Все параметры, кроме 'type', являются необязательными, за исключением того, что столбцы типа 'numeric' должны указывать 'precision' и 'scale', а столбцы 'varchar' должны указывать 'length'.


4

myodule_schemaимеет опечатку. После mотсутствует y.


Спасибо BetaRide, это была ошибка транскрипции. Я даю вам один голос, потому что вы прочитали мой пост, и на самом деле я действительно обнаружил орфографическую ошибку в названии функции, да
Тайлер Дурден
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.