Drupal7 .install脚本无效

时间:2012-03-02 11:19:50

标签: drupal drupal-7

我正在尝试将我的模块从drupal6转换为drupal 7这是我的代码。未创建数据库表。

function example_install() {
  drupal_install_schema('example');
}
/**
 * Implements hook_schema().
 */
function example_schema() {
  $schema['example'] = array(
    'description' => 'example settings',
    'fields' => array(
      'name' => array(
        'description' => 'name',
        'type' => 'varchar',
        'length' => '255',
        'not null' => TRUE,
      ),

      'age' => array(
        'description' => 'age',
        'type' => 'int',
    'size' => 'tiny',
        'not null' => TRUE,
      ),
)    ,
);
  return $schema;
}

任何人都可以解释什么是错误的。

1 个答案:

答案 0 :(得分:8)

您不想在Drupal 7中自己运行drupal_install_schema(),如果.install文件中存在hook_schema(),则会自动调用hook_install()。这可能会导致一些问题,但您仍然希望至少创建一次表。

删除hook_schema()后,尝试卸载(不只是禁用)模块,然后重新启用它。我建议Devel module执行此操作,因为它提供了一个页面(开发/重新安装),您可以轻松地强制重新安装模块。

如果您不想这样做,请转到模块页面,禁用该模块,然后单击顶部的“卸载”选项卡将其完全卸载。然后返回模块页面并重新启用它。

这样做会强制Drupal重新运行你的{{1}}脚本,并且应该创建表。