Code de programmation sur écran

Drupal 7: Créer un field datetime dans un schema avec db_create_table

Pour la création d’une table dans Drupal 7, on peut utiliser le hook « mon_module_update_7000 » dans le fichier « mon_module.install ».

Le type datetime n’est malheureusement pas mappé, c’est pour cela qu’il faut utiliser la clé « mysql_type »

const MON_MODULE_TABLE_NAME = 'mon_module_table';

function get_mon_module_schema(): array {
   return [
      'description' => 'description',
      'fields' => [
         'id' => ['type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE],
         'log' => ['type' => 'blob', 'not null' => TRUE],
         'created_at' => ['type' => 'datetime', 'mysql_type' => 'datetime', 'not null' => TRUE],
      ],
      'primary key' => ['id'],
   ];
}

function mon_module_schema() {
   $schema[MON_MODULE_TABLE_NAME] = get_mon_module_schema();
   return $schema;
}

function mon_module_update_7000() {
   if (!db_table_exists(MON_MODULE_TABLE_NAME)) {
      $schema = get_mon_module_schema();
      db_create_table(MON_MODULE_TABLE_NAME, $schema);
   }
}