diff --git a/consumers.install b/consumers.install
index 3ca8e25..eaca371 100644
--- a/consumers.install
+++ b/consumers.install
@@ -6,8 +6,10 @@
  */
 
 use Drupal\consumers\Entity\Consumer;
+use Drupal\Core\Entity\Exception\UnsupportedEntityTypeDefinitionException;
 use Drupal\Core\Field\BaseFieldDefinition;
 use Drupal\Core\StringTranslation\TranslatableMarkup;
+use Drupal\Core\Utility\UpdateException;
 
 /**
  * Implements hook_install().
@@ -161,3 +163,29 @@ function consumers_update_8105() {
     'is_default' => TRUE,
   ])->save();
 }
+
+/**
+ * Update entity definition to add the "owner" key and adapt the field.
+ */
+function consumers_update_8106() {
+  $edum = \Drupal::entityDefinitionUpdateManager();
+  $entity_type = $edum->getEntityType('consumer');
+  $keys = $entity_type->getKeys();
+  $owner_key = 'owner_id';
+  $entity_type->set('entity_keys', $keys + ['owner' => $owner_key]);
+  $edum->updateEntityType($entity_type);
+  $field_definition = BaseFieldDefinition::create('entity_reference')
+    ->setLabel(new TranslatableMarkup('User ID'))
+    ->setSetting('target_type', 'user')
+    ->setTranslatable($entity_type->isTranslatable())
+    ->setDefaultValueCallback(Consumer::class . '::getDefaultEntityOwner');
+  $field_storage_definition = $field_definition
+    ->getFieldStorageDefinition();
+  $has_original = (bool) $this->getFieldStorageDefinition(
+    $field_storage_definition->getName(),
+    $field_storage_definition->getTargetEntityTypeId()
+  );
+  $has_original
+    ? $edum->updateFieldStorageDefinition($field_storage_definition)
+    : $edum->installFieldStorageDefinition('owner_id', 'consumer', 'consumers', $field_definition);
+}
