1 entity_example.install entity_example_schema()

Implements hook_schema().

Related topics

File

modules/examples/entity_example/entity_example.install, line 15
Install for a basic entity - need to create the base table for our entity. This table can have as many columns as you need to keep track of entity-specific data that will not be added via attached fields. The minimum information for the entity to work…

Code

function entity_example_schema() {
  $schema = array();

  // The name of the table can be any name we choose. However, namespacing the
  // table with the module name is best practice.
  $schema['entity_example_basic'] = array(
    'description' => 'The base table for our basic entity.',
    'fields' => array(
      'basic_id' => array(
        'description' => 'Primary key of the basic entity.',
        'type' => 'serial',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
      // If we allow multiple bundles, then the schema must handle that;
      // We'll put it in the 'bundle_type' field to avoid confusion with the
      // entity type.
      'bundle_type' => array(
        'description' => 'The bundle type',
        'type' => 'text',
        'size' => 'medium',
        'not null' => TRUE,
      ),
      // Additional properties are just things that are common to all
      // entities and don't require field storage.
      'item_description' => array(
        'description' => 'A description of the item',
        'type' => 'varchar',
        'length' => 255,
        'not null' => TRUE,
        'default' => '',
      ),
      'created' => array(
        'description' => 'The Unix timestamp of the entity creation time.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
    ),
    'primary key' => array('basic_id'),
  );

  return $schema;
}