We have a custom field whose underlying stored values are JSON strings. We would like to migrate the values of the field across the instance after a plugin update to a new format to enable new functionality. We are wondering what the best way to run this field value migration. We are considering
- Migrating fields on a ticket in the custom field logic, as they are accessed on the instance.
- Using the PluginScheduler to run this as a job at some future time after plugin install.
- Building the migration into the Indexing job.
I think an indexer based approach might be best, because it is simple to instruct an admin to reindex after a plugin update to make sure everything is up to date. However, I'm concerned that using reindex jobs for purposes not directly related to indexing may have unexpected side effects.
Has anyone had to do a similar sort of value migration? How did you approach it and what were the takeaways?