'Stores the association between entity revisions and their workspace.', 'fields' => [ 'workspace' => [ 'type' => 'varchar_ascii', 'length' => 128, 'not null' => TRUE, 'default' => '', 'description' => 'The workspace ID.', ], 'target_entity_type_id' => [ 'type' => 'varchar_ascii', 'length' => EntityTypeInterface::ID_MAX_LENGTH, 'not null' => TRUE, 'default' => '', 'description' => 'The ID of the associated entity type.', ], 'target_entity_id' => [ 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'description' => 'The ID of the associated entity.', ], 'target_entity_id_string' => [ 'type' => 'varchar_ascii', 'length' => 128, 'not null' => TRUE, 'default' => '', 'description' => 'The string ID of the associated entity.', ], 'target_entity_revision_id' => [ 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'description' => 'The revision ID of the associated entity.', ], ], 'primary key' => ['workspace', 'target_entity_type_id', 'target_entity_id', 'target_entity_id_string'], 'indexes' => [ 'target_entity_revision_id' => ['target_entity_revision_id'], ], ]; return $schema; } /** * Implements hook_update_last_removed(). */ function workspaces_update_last_removed(): int { return 8803; } /** * Update workspace associations to support entity types with string IDs. */ function workspaces_update_11101(): void { $schema = \Drupal::database()->schema(); $target_id_spec = [ 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 0, 'description' => 'The ID of the associated entity.', ]; $schema->changeField('workspace_association', 'target_entity_id', 'target_entity_id', $target_id_spec); $target_id_string_spec = [ 'type' => 'varchar_ascii', 'length' => 128, 'not null' => TRUE, 'default' => '', 'description' => 'The string ID of the associated entity.', ]; $schema->addField('workspace_association', 'target_entity_id_string', $target_id_string_spec, [ 'primary key' => ['workspace', 'target_entity_type_id', 'target_entity_id', 'target_entity_id_string'], ]); } /** * Install the new Workspaces UI module. */ function workspaces_update_11102(): void { \Drupal::service('module_installer')->install(['workspaces_ui']); }