I installed the Rabbit Hole module in Drupal 9. I was immediately greeted with this message on the status page:
Mismatched entity and/or field definitions
The following changes were detected in the entity type and field definitions.
The Rabbit Hole action field needs to be installed.
The Rabbit Hole redirect path. field needs to be installed.
The Rabbit Hole redirect response code field needs to be installed.
The Rabbit Hole redirect fallback action field needs to be installed.
Everyone seems to say run devel entity-updates, but that module page itself says:
The goal of this module is to have a quick way to apply schema updates while developing new entity types and ending up incrementally adding/removing/changing entity type/field definitions.
When these changes are part of an official release (and not in the scope of a code development session), they should absolutely rely on DB update functions, as explained in the CR above, because that's the only way the entity schema update process can be predictable and reliable.
For this reason, this module depends on Devel and is not meant to be enabled in production environments or relied upon in deployment workflows, see #3082442: Why not meant to be enabled in production environments? for more details.
So, it should not be used or ran in production? Running it locally produces no visible change to configuration exports. So how would you get this done on a production database?
Instead, people say these updates should occur in an update hook. What does that mean? Is this burden on the developer or the user to do? I have seen this from time to time with contributed modules, and do not understand if devel entity-updates will "fix" (correctly fix) this issue, or if there is a concrete way to do this change.