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
1 Asked on December 4, 2020 by miststudent2011
1 Asked on December 3, 2020 by vaibhav-rana
1 Asked on November 30, 2020 by rick1
1 Asked on November 29, 2020 by alaa-haddad
1 Asked on November 18, 2020 by hiranya-sarma
1 Asked on November 13, 2020 by paul-h
2 Asked on October 21, 2020 by wbeasley
1 Asked on October 9, 2020 by sivaji
1 Asked on October 4, 2020 by anders-wallenquist
1 Asked on October 1, 2020 by travis-miller
1 Asked on October 1, 2020 by user3686276
0 Asked on September 13, 2020 by hendrik-kaiser
Get help from others!
Recent Questions
Recent Answers
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP