+ $has_content_translation_status_field = $definition_update_manager->getFieldStorageDefinition('content_translation_status', 'block_content');
+ if ($has_content_translation_status_field) {
+ $status->setInitialValueFromField('content_translation_status', TRUE);
+ }
+ else {
+ $status->setInitialValue(TRUE);
+ }
+ $definition_update_manager->installFieldStorageDefinition('status', 'block_content', 'block_content', $status);
+
+ // Uninstall the 'content_translation_status' field if needed.
+ $database = \Drupal::database();
+ if ($has_content_translation_status_field) {
+ // First we have to remove the field data.
+ $database->update($entity_type->getDataTable())
+ ->fields(['content_translation_status' => NULL])
+ ->execute();
+
+ // A site may have disabled revisionability for this entity type.
+ if ($entity_type->isRevisionable()) {
+ $database->update($entity_type->getRevisionDataTable())
+ ->fields(['content_translation_status' => NULL])
+ ->execute();
+ }
+
+ $content_translation_status = $definition_update_manager->getFieldStorageDefinition('content_translation_status', 'block_content');
+ $definition_update_manager->uninstallFieldStorageDefinition($content_translation_status);
+ }
+}
+
+/**
+ * Add 'reusable' field to 'block_content' entities.
+ */
+function block_content_update_8600() {
+ $reusable = BaseFieldDefinition::create('boolean')
+ ->setLabel(t('Reusable'))
+ ->setDescription(t('A boolean indicating whether this block is reusable.'))
+ ->setTranslatable(FALSE)
+ ->setRevisionable(FALSE)
+ ->setDefaultValue(TRUE)
+ ->setInitialValue(TRUE);
+
+ \Drupal::entityDefinitionUpdateManager()
+ ->installFieldStorageDefinition('reusable', 'block_content', 'block_content', $reusable);