如何在Drupal7中使用.install文件创建表

如何在Drupal7中使用.install文件创建表,drupal,drupal-7,schema,Drupal,Drupal 7,Schema,我是drupal新手,正在处理自定义模块,这是我的.install文件代码,但在安装模块时并没有在数据库中创建表。谁能告诉我哪里错了 <?php function make_application_schema() { $schema['make_master'] = array( 'description' => 'Make master table', 'fields' => array( 'make_id

我是drupal新手,正在处理自定义模块,这是我的.install文件代码,但在安装模块时并没有在数据库中创建表。谁能告诉我哪里错了

<?php
    function make_application_schema()
    {
        $schema['make_master'] = array(

     'description' => 'Make master table',
     'fields' => array(
       'make_id' => array(
        'description' => 'make id primary key auto increment',
        'type' => 'serial',
        'not null' => TRUE,
       ),
      'make_name' => array(
        'description' => 'Make name',
        'type' => 'varchar',
        'length' => '100',
        'not null' => TRUE,
     ),
    'make_status' => array(
      'description' => 'check make status',
      'type' => 'int',
      'size' => 'tiny',
      'not null' => TRUE,
    ),
  ),
  'primary key' => array('make_id'),
);
return $schema;
}

  function make_application_install()
  {

  }

  function make_application_uninstall()
  {

  }

根据您的问题,我认为您忘记调用
drupal\u install\u schema
函数了。这里更新了make_application.install的
make_application\u install
make_application\u uninstall

function make_application_install() {
// Use schema API to create database table.
   drupal_install_schema('make_master');
}


function make_application_uninstall() {
// Remove tables.
   drupal_uninstall_schema('make_master');
}


这些表不会在模块启用时安装,它们只会在首次安装时安装。首先,禁用该模块,然后单击“卸载”选项卡,选择该模块并将其卸载(注意:如果您的模块没有hook_uninstall()函数,它将不会出现在此处-请确保您已添加此函数)。然后,单击列表选项卡,重新启用模块。这是首次安装,表将被安装

或者使用devel模块,启用开发块,然后使用块中的“重新安装模块”链接


您可以参考此链接了解更多信息:

您的模块名称是什么?在安装和使用hook_模式时,应将函数命名为:

我的模块

在my_module.install中

function my_module_schema () ....

而且。。。在这之后,这应该是工作:)

为了安装数据库“make\u master”,您必须使用模块名调用drupal\u install\u模式:

drupal_install_schema('make_application');

谢谢,我已经在安装和卸载功能中添加了这两行代码,并且对禁用和卸载模块采用相同的方法。但它仍然不起作用我发现并修复了问题我更改了使用“make_application”的函数的名称从所有3个函数中删除“application”这在Drupal 7中是一个不受欢迎的做法(请参阅)