Issue
You get "Mismatched entity and/or field definitions" warnings on a site's Status page
You notice that entity-updates are no longer done by database updates.
Resolution
On a chosen non-production environment (say, Stage)...
- Enable Devel(devel) and then install and enable the contrib module Devel Entity Updates (devel_entity_updates)
- Make an on-demand backup of the database of the chosen (non-production) database. See https://docs.acquia.com/cloud-platform/manage/back-up/
- Switch the code on the chosen environment to be the same as deployed on Prod. See https://docs.acquia.com/cloud-platform/manage/code/environments/
- Make an on-demand backup of the Prod database. See https://docs.acquia.com/cloud-platform/manage/code/environments/
- Put the live site into maintenance mode. See https://support.acquia.com/hc/en-us/articles/360004148473-Maintenance-Mode
- Copy the Prod database to the chosen non-production environment. See https://docs.acquia.com/cloud-platform/manage/database/
- Enable the Devel Entity Updates module and use it to apply the updates.
- Disable Devel Entity Updates (and Devel), if desired.
- Copy the database from the chosen environment back to Prod.
Note that there is no turning off maintenance mode step because the updated database has it off, already. Also note that the backup made in (4) is only used in case of emergency, and can be deleted after the procedure. Also, decide whether you need to restore the database backup from (2) or can remove that one as well.
Cause
The Drupal community changed the workflow for applying entity-updates. See Support for entity updates removed from Drupal core