The Solution Upgrade tool is a v19 treat. The promo video is available at YouTube
Has anyone played with it yet? I have made a couple of attempts that are unsatisfactory.
In my experiments it has successfully upgraded tables, table occurrences, relationships, and scripts.
It hasn't upgraded layouts and layout objects.
I haven't found links to documentation of the XML grammar yet, so I can't be sure that I'm generating the correct instructions in the patch file . In the video they tell us that we must create the patch file manually. They suggest that we use Save as XML copy or Save as DDR as a basis but then say that the output has to be modified to be used as a patch.
There are a couple of steps that they describe
- Generate initial XML output using Save as XML Copy or Database Design Report
- Modify XML output to generate a patch file
- The most important change is that the root element for the patch file is FMUpgradeToolPatch
- The second thing to note is that the upgrade tool XML structure is much closer to XML Copy format than DDR format.
- In the video they also note that the patch file should only include the objects which have been added, removed, or modified. This seems sensible because it reduces the likelihood of errors.
- (I did run a test that included everything and it produced the same output as the minimal patch but its probably not a good idea to do that. )
- This means doing a diff to determine where the difference are
- BUT generating the diff isn't as simple as running a diff.
- The patch file needs to know what the whole object is, let's call that the XML framework, which will be common to both files, so a diff tool won't identify those lines as they haven't changed.
- Diff tools will generate a LOT of false positives with UUIDs, timestamp changes and so on.
- Even an XML aware diff tool will struggle with that. This means that the task of generating a patch requires careful manual editing.
I'm using the visual diff tools in NetBeans IDE, plus a splash of vim and other command line tools. I'd love to know what tools others are using to manage this job.