If you've done any large scale work you've probably worked with versioning systems and you probably also know that versioning a MySQL database is not an easy task, simply because the data is not stored in such a way that you can easily differ an old data set with a new one. There's all sorts of solutions out there but none that really work in a plug-and-play sort of way, all require the program that uses the database to help out a bit, or they require you as a developer to perform a lot of manual labour determining what should be versioned and what shouldn't.
Now XenForo does a good job providing you with a means of versioning a lot of your data through addons. An addon exports to XML which you can very easily use within your versioning system. However not every aspect of XF can be related to an addon and so not every part is so easily versioned. For example say I want to add a bunch of new usergroups and upgrades, XenForo does not have a solution to easily extract, version and import this sort of data.
So to boil down to the actual subject of this discussion, I would love to know whether there are others here that face or have faced this challenge, and what they are doing about it.
I have many ideas but they all have their own problems. In an ideal world I'd just be able to say "extract that usergroup and those permissions" and likewise "import them" into a different environment. It would be very hard to add such a feature for every single dataset in XenForo though.
Would love to also hear Kier and Mike's views on the matter, as it is a problem they must often face themselves as well.