Currently migrations are carried out by running core:update command.
However it maybe should also be possible to split updates into two flows. One should be db migration and other would be to perform some additional logic.
Possible use case:
It could come quite in handy when some users have setup, on which running core:update will not be a good idea.
Goal of this ticket is to start discussion about possible improvements and separating DB migrations from additional logic done between some versions.
Remember which SQL query was executed and do not execute it again
Yes, but only in case query was executed without errors (possible on bigger databases).
wants to perform other logic done 'under the hood' (i.e. plugins name change, plugin activation etc) - but currently this is impossible, as Piwik update will notice core_version in piwik_option table set to latest possible, and will omit all the logic that hasn't been executed.
This was fixed in #6760 by hiding the
core_version SQL from the list of queries.
So now even when copy pasting the list of queries it will still show the update screen to run any non-sql upgrades.
What would be the most useful next step for improving the
core:update experience, if something needs to be done soon? otherwise I leave the issue opened for further suggestion and feedback!