Hi Ben,
Thank you for the appreciative words.
At this point, ModelRight doesn’t completely support what you want. Furthermore, it is not in our plans to support any kind of home-grown macro language. As you probably know, ModelRight provides a built-in scripting engine that gives you access to all the details of a model; therefore using scripting one can manipulate nearly any object or property in a model. Furthermore, scripts are written established languages like VBScript or JScript.
Now, the good news is that we intended to provide support for automatic name generation (using scripting) soon. The way is going to work is very simple…. For every object type (Table, Index, Key Constraint, Column, etc) there will be a script name property which can be used to define how the names of any object of that type is defined (much like a macro, except I is VBScript or JScript). If there is no script name property defined then an object name is defined as usual.
In fact, we do have something along these lines in the current release. One can attach a script to define how the FK columns are named, when they’re automatically created & migrated.
Please take a look at this:
https://www.modelright.com/files/folders/scripts/entry102.aspx
Now, just imagine the same kind of mechanism that will be extended model wide for every kind of object.
Furthermore, using scripting one can enforce naming conventions just by periodically running various “rename/update name” scripts… it turns out that it is a very easy to use and effective approach that our existing clients use quite a bit. (BTW, if ModelRight support is contacted, they will help creating these kinds d of scripts, when specifications are provided)
The way it works is like this: one just creates indexes, constraints etc without giving any names (i.e. they’ll generated names – or at least some of them) and then (after all indexes, constraints, etc are added) a script is run to give them proper names. Later on, if more indexes, constraints are added, then the script is run again, etc.
For instance, please take a look at this:
https://www.modelright.com/files/folders/scripts/entry74.aspx
or this:
https://www.modelright.com/files/folders/scripts/entry110.aspx
Best Regards.
ModelRight Evangelist