[update:execute] Support batch updates and post update functions #4057
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Issue #3929
Problem/Motivation
drupal updb does not support batch updates. This has made updating from 8.6.x - 8.7.0 impossible as several of the post_update functions require batch processing.
Details of how to reproduce can be found on issue #3929
Solution
Update ExecuteCommand::executeUpdate() to loop over the update function until it is completed. Provide helpful feedback to the user throughout this process.
I've added a
do { } while()
loop into executeUpdate to ensure that the function get's run the correct number of time.A default message of 'Processed x%' is printed as information and indented to make clear that it relates to the function above.