我试图将我的模块从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)
任何人都可以解释什么是错的.
您不想drupal_install_schema()在Drupal 7中自行运行,hook_schema()如果它存在于.install文件中,则会自动调用.这可能会导致一些问题,但您仍然希望至少创建一次表.
删除后,hook_install()尝试卸载(不仅仅是禁用)模块,然后重新启用它.我建议Devel module这样做,因为它提供了一个页面(开发/重新安装),您可以轻松地强制重新安装模块.
如果您不想这样做,请转到模块页面,禁用该模块,然后单击顶部的"卸载"选项卡将其完全卸载.然后返回模块页面并重新启用它.
这样做会强制Drupal重新运行hook_schema()脚本,并且应该创建表.