Drupal Answers Asked by David montera on October 26, 2021
I want to add a custom table when a module I develop is installed. The code I am using doesn’t seem to work, as the post table isn’t created.
What is wrong with the code I am using?
/**
* Installs the database schema.
*/
function mymodule_install() {
drupal_install_schema('post');
}
/**
* Uninstalls the database schema.
*/
function mymodule_uninstall() {
drupal_uninstall_schema('post');
}
/**
* Creates the tables using the schema API.
*/
function mymodule_schema() {
$schema['post'] = array(
'description' => 'description pour la table post',
'fields' => array(
'pid' => array(
'description' => 'post id',
'type' => 'int',
'not null' => TRUE,
),
'title' => array(
'description' => 'title',
'type' => 'varchar',
'not null' => TRUE,
),
'body' => array(
'description' => 'body',
'type' => 'varchar',
'not null' => TRUE,
),
'created' => array(
'description' => 'created',
'not null' => TRUE,
'mysql_type' => 'timestamp',
),
'primary key' => array('pid'),
),
);
}
I see two problems with your hook_schema
implementation.
return
statement at the end of your function to return the schema.primary_key
needs to be outside the fields array on the same level as the fields
and the description
./**
* Implements hook_schema().
*/
function MYMODULE_schema() {
$schema['post'] = [
'description' => 'description pour la table post',
'fields' => [
'pid' => [
'description' => 'post id',
'type' => 'int',
'not null' => TRUE,
],
'title' => [
'description' => 'title',
'type' => 'varchar',
'not null' => TRUE,
],
'body' => [
'description' => 'body',
'type' => 'varchar',
'not null' => TRUE,
],
'created' => [
'description' => 'created',
'not null' => TRUE,
'mysql_type' => 'timestamp',
],
],
// primary_key needs to be outside the fields array.
'primary key' => ['pid'],
];
// Don't forget to return the schema.
return $schema;
}
Answered by Ajay Reddy on October 26, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP