Drupal7 .install脚本无效

Ram*_*esh 3 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;
}
Run Code Online (Sandbox Code Playgroud)

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

Cli*_*ive 8

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

删除后,hook_install()尝试卸载(不仅仅是禁用)模块,然后重新启用它.我建议Devel module这样做,因为它提供了一个页面(开发/重新安装),您可以轻松地强制重新安装模块.

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

这样做会强制Drupal重新运行hook_schema()脚本,并且应该创建表.