How to integrate UUID with third party entities

Last updated on
10 November 2016

This is documentation for Drupal 7, which is no longer supported. Learn more and find resources for Drupal 7 sites

When developing custom entity type and you need to integrate it with UUID module you need to do the following:

  1. Mark your entity type in hook_entity_info() that it shall have UUIDs:
    
    /**
     * Implements hook_entity_info().
     */
    function mymodule_entity_info() {
      return array(
        'myentity' => array(
          'base table' => 'myentity',
          'revision table' => 'myentity_revision',
          // ...
          'uuid' => TRUE,
          'entity keys' => array(
            // Value here('uuid' after the '=>' sign) is the name of the column that will be used to store corresponding UUID in the database.
            'uuid' => 'uuid', 
            // In case you creating revisionable entity type you should also put this line.
            'revision uuid' => 'vuuid',
          ),
        ),
      );
    }
    
  2. In your hook_schema definition you need to put the following:
      if (module_exists('uuid')) {
        $field = uuid_schema_field_definition();
        $schema['myentity']['fields']['uuid'] = $field;
        $schema['myentity']['indexes']['uuid'] = array('uuid');
        // This is needed only for revisionable entities.
        $schema['myentity_revision']['fields']['vuuid'] = $field;
        $schema['myentity_revision']['indexes']['vuuid'] = array('vuuid');
      }
    

Help improve this page

Page status: No known problems

You can: