Is there a tool or system to migrate JCR component level changes?
let's say you develop a component to display some images based on a category field. This gets deployed to your 5 cloud environments (dev, test, UAT, stage, prod etc).
On production and UAT the Content Authors add this component to various pages, and set the category values.
You now develop a new version of this component which you remove the category field, and add new fields such as categoryList.
When this new version of the component get deployed to each cloud environment, all pages which use this component get broken, as they expect a categoryList field.
We would want to run a script to add the new field to all existing instances of the component, and set its value to an array with the value of the old category field as the only element. This would only run once, if not already run for that env.
This is very similar to migrating a SQL database change. For this you would use a tool such as liquibase, which has change scripts which get run when the system boots, if that script wasnt previously applied. Liquibase happens to use scripts which contain SQL statements (for simple table structure or data changes), but could also contain code (for more complex changes).
This must be a pretty common problem for AEM?