I've sort of figured out how to deploy to a Nav Database installed on azure, but I have a few questions around performance and optimal setup.
My first attempt was as follows:
- The sandbox database was a backup of the client's database without extensions or custom modifications.
- Both the sandbox database and the customer's database resided in the cloud.
- It took an hour from start to finish (30 minutes just for publishing).
After reading a few posts online, someone had noted that changing the sandbox database recovery mode from Full to Simple resolved his deployment time issues. The problem is that an azure SQL database doesn't allow you to change the recovery model, so I decided to try using a local database as the sandbox database.
My second attempt:
- The sandbox database was local on my computer, and was just a base install of Nav, no customizations, with the recovery model set to simple.
- I created a local service tier and pointed it to the customer's Azure SQL database.
- It took 3 minutes to deploy.
While I've solved my deployment issue, I'm still unclear as to what caused the slow deployment in the first place. I tried changing the recovery model to full, but it still took 3 minutes.
- Can someone point me to a link that describes what exactly is going on when deploying via a sandbox database?
- Does my sandbox database need to be an exact copy of the customer's database without extensions? For example, if the customer has Lanham installed, and our extension was built with that as a base, does the sandbox need to have Lanham installed as well, or can it just be a base Nav database?
I'm thinking it needs to have Lanham installed because it looks as though the objects are compiled on the Sandbox before the extension is installed on the main database. The reason this is important, is if the sandbox needs to match the live minus extensions, we would need a separate sandbox database for every customer. I'm hoping that Nav just wipes everything from the sandbox database with every deployment eliminating the need for a separate sandbox database for each customers.
- There appears to be a lot of network activity between the sandbox and main database during deployment. What is transferred between the sandbox and main database?