Friday, October 4, 2013

Baseline is the new old

I remember the very first time I saw the reference to a "Baseline database" in AX2012. It wasn't perfectly clear what the purpose of this database was. I remember thinking it might be some kind of Foundation database or perhaps even the database holding the application code. However, the database was optional, so evidently it had to be something else.

Eventually I learned the purpose of the baseline. It was simply the replacement of "old". If you're not sure what "old" is, it is just that folder holding the previous version of the application layer files in pre-AX2012 installations. This special folder makes it possible for developers to compare elements not only against other application layers, but also a previous version of the same application layer. This can be very helpful when upgrading Dynamics AX from a previous version.

This is how compare looks without Baseline (also known as "old"):

If you don't have a Baseline database, you can easily create it from scratch. It is just a database having the necessary database objects to hold a modelstore. If you have a Baseline database all you need to do is to make sure your Server Configuration points the Baseline Database option to the correct database.

After the AOS is restarted, it will include elements in this database when you do an element compare.

So how would you fill this Baseline with the application layers? Well, you can install AXModels to a Baseline database, but you will probably want to copy the entire modelstore instead.

AX2012 R2 has the neat setup where the ModelStore is in a separate database making copying to "old" easy with regular SQL Server Backup and Restore. If you are using AX2012 RTM or you prefer to use AXUtil or PowerShell, you can export the modelstore from your AX2012 Modelstore database and then import it using the same tools to the Baseline database. If your Server Configuration is set to a Baseline database, you will obviously have to shut down the AOS the minute you plan to apply the modelstore to the Baseline database.

So that is it - baseline is just the new "old". It is probably not "new" to those who have been tampering with AX2012 for a while now, but sometimes old news is also news. :-)