The claim from the ORM Designer website:
With ORM Designer you develop, design and document all at once. You don’t need other tools to design application model.
It does exactly what they claim it does.
When I found ORM Designer I was just shopping for a better alternative to Gliffy, as the complexity of project I’m working on has outgrown a plain drawing tool. I was looking at alternatives like PowerDesigner and other ERD/schema management tools, and it occurred to me to search for tools with native support for ORM, as the project in question is using Doctrine2.
So I found ORM Designer, as they claimed to be Mac compatible, but it turns out they pulled a bit of a fast one on that front, as the compatibility amounts to showing step by step instructions for running it with Wine (well played, ORM Designer, well played). I’ve subsequently spoken to the developer, and he mentioned that version 2, which is due imminently, will have real multiplatform support. In any case, it works fine for me on Wine, and of course if you’re running Fusion, Parallels, VirtualBox, etc. on your Mac, or if you’re running Windows natively, it’s no issue anyway.
So going into the 2 week trial, I fully expected to run into some situations where the tool would not allow us to define some subtlety, and we’d have to break off the ORM-Designer-to-code workflow at some point, and begin maintaining it manually. We have yet to hit that point. It seems to have very rich support for Doctrine2.
For example, the question of creating indexes on multiple fields to enforce uniqueness was a situation where we assumed we may have to hand tweak. Nope. Works perfect inside ORM Designer, as long as you alias how the association is inversed in your association object.
Another example: I initially missed that I could define a namespace for the module, so I thought I’d have to add that to the generated entities manually. Nope. Works perfect inside ORM Designer. You just have to go into the module properties.
One bummer with version 1 is that it only exports as XML or YML, but version 2 will add support for annotations, which is what we favor. Currently I’m exporting XML to a cli sandbox and converting with Doctrine itself. This just adds one easy step to the process of updating Entities in our project. I’m super happy with this workflow, and really look forward to the next version. Check it out for yourself: ORM Designer