Як створити таблицю під час встановлення модуля


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-reinstall mymoduleдля швидкого встановлення свого модуля
FLY

Відповіді:


11

Вам не вистачає lengthвластивості для varcharстовпця ("список"). lengthПотрібно, щоб CREATE TABLEзапит вийшов з ладу.

З документів API схеми :

Усі параметри, окрім 'type', необов’язкові, за винятком того, що стовпці 'numeric' типу повинні вказувати «точність» та «шкала», а у стовпцях «varchar» - «довжина».


4

myodule_schemaмає друкарські помилки. Ідентифікатор mвідсутній після y.


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