Я хотел бы поделиться с вами своим опытом с этой ошибкой в Drupal 6. В моем первом модуле у меня было три таблицы.У меня была запись для каждого в моем hook_schema
(называемом education_schema
):
function education_schema()
{
$schema['education_course'] = array( /* ... */ );
$schema['education_market'] = array( /* ... */ );
$schema['education_event'] = array( /* ... */ );
}
В моем hook_install
у меня изначально было следующее:
function education_install()
{
drupal_install_schema('education_course');
drupal_install_schema('education_market');
drupal_install_schema('education_event');
}
Нет таблицсоздавали при установке модуля.Зачем?Я понятия не имел: никаких ошибок не было видно нигде в журналах.В конце концов я узнал о PHP-расширении xdebug , которое при использовании в education_install
показало, что drupal_install_schema
не удалось, потому что не удалось найти подпрограммы education_course_schema
, education_course_market
и education_course_event
.На тот момент решение было совершенно очевидным:
function education_install()
{
drupal_install_schema('education');
}
И вуаля, это сработало!
Итак, я узнал, что drupal_install_schema
не регистрирует никаких ошибок при сбое, что только однатребуется вызов drupal_install_schema
, и он устанавливает все схемы, которые вы возвращаете в массив, что стоит прочитать документацию по API drupal_install_schema
, и, наконец, xdebug - очень удобная утилита!