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