'The base table for Tripal Vocabulary-based entities.', 'fields' => array( 'entity_id' => array( 'description' => 'The primary identifier for a vocabulary entity.', 'type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, ), 'type' => array( 'description' => 'The type of entity. This should be an official term ID.', 'type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => '', ), 'cvterm_id' => array( 'description' => 'The cvterm_id for the type of entity. This cvterm_id should match a record in the Chado cvterm table.', 'type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => '', ), 'tablename' => array( 'description' => 'The Chado table that contains the record that this entity is associated with.', 'type' => 'varchar', 'length' => 128, 'not null' => TRUE, 'default' => '' ), 'record_id' => array( 'description' => 'The unique numerical identifier for the record that this entity is associated with (e.g. feature_id, stock_id, library_id, etc.).', 'type' => 'int', 'not null' => TRUE, ), 'title' => array( 'description' => 'The title of this node, always treated as non-markup plain text.', 'type' => 'text', 'not null' => TRUE, 'default' => '', ), 'uid' => array( 'description' => 'The {users}.uid that owns this node; initially, this is the user that created it.', 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'status' => array( 'description' => 'Boolean indicating whether the node is published (visible to non-administrators).', 'type' => 'int', 'not null' => TRUE, 'default' => 1, ), 'created' => array( 'description' => 'The Unix timestamp when the node was created.', 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), 'changed' => array( 'description' => 'The Unix timestamp when the node was most recently saved.', 'type' => 'int', 'not null' => TRUE, 'default' => 0, ), ), 'indexes' => array( 'entity_changed' => array('changed'), 'entity_created' => array('created'), 'tablename' => array('tablename'), 'record_id' => array('record_id'), 'chado_record' => array('tablename', 'record_id'), 'type' => array('type'), 'cvterm_id' => array('cvterm_id'), 'uid' => array('uid'), ), 'unique keys' => array( 'record' => array('tablename', 'record_id'), ), 'primary key' => array('entity_id'), ); $schema['chado_data_type'] = array( 'description' => 'Stores information about defined chado data types.', 'fields' => array( 'id' => array( 'type' => 'serial', 'not null' => TRUE, 'description' => 'Primary Key: Unique Chado data type identifier.', ), 'type' => array( 'description' => 'The machine-readable name of this chado data type.', 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, ), 'label' => array( 'description' => 'The human-readable name of this chado data type.', 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', ), 'weight' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny', 'description' => 'The weight of this chado data type in relation to others.', ), 'data' => array( 'type' => 'text', 'not null' => FALSE, 'size' => 'big', 'serialize' => TRUE, 'description' => 'A serialized array of additional data related to this chado data type.', ), ) + entity_exportable_schema_fields(), 'primary key' => array('id'), 'unique keys' => array( 'type' => array('type'), ), ); return $schema; } /** * Implements hook_uninstall(). * * At uninstall time we'll notify field.module that the entity was deleted * so that attached fields can be cleaned up. * * @ingroup entity_example */ function tripal_entities_uninstall() { // TODO: make this dynamic (not hardcoded bundle). field_attach_delete_bundle('chado_data', 'gene'); }