本主题是《云客Drupal源码分析之数据库系统及其使用》的补充,便于查询,所以独立成一个主题
讲解数据库系统如何操作Schema(创建修改数据库、数据表、字段;判断它们的存在性等等),以及模块如何通过一个结构化数组去创建自己用到的数据表
官方的Schema文档地址是:https://www.drupal.org/node/146843
官方API文档:https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Database%21database.api.php/group/schemaapi/8.2.x
此外在\core\lib\Drupal\Core\Database\database.api.php文件中也有详尽的注释。
数据表定义:
程序要去创建数据表,那么需要先得到一个关于数据表的定义,才能据此创建,在drupal中这个定义是一个嵌套数组,结构如下:
$schema = array(
'description' => 'The base table for nodes.',
'fields' => array(
'nid' => array('type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE),
'vid' => array('type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE,'default' => 0),
'type' => array('type' => 'varchar','length' => 32,'not null' => TRUE, 'default' => ''),
'language' => array('type' => 'varchar','length' => 12,'not null' => TRUE,'default' => ''),
'title' => array('type' => 'varchar','length' => 255,'not null' => TRUE, 'default' => ''),
'uid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'status' => array('type' => 'int', 'not null' => TRUE, 'default' => 1),
'created' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'changed' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'comment' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
'promote' => array