Sitecore 9.1 - Installation with Existing Databases

There are several cases where you do not want to create new databases and users during the installation.

Black and Gray Mining Rig

In my case, we didn't have the access rights to create new databases or users. So, we prepared the databases before we went to our customer. They installed the databases manually and gave us the connection information. First, we were looking for an option in the installation script to skip the database and user installation. We all know how clear the installation script of Sitecore 9.1 are. We found a simpler way. We just removed all the <dbDacFX and <dbFullSql tags in the archive.xml file which is located in the installation zip file "Sitecore XM 9.1.0 rev. 001564 (OnPrem)_cm.zip" and "...cd.zip". The archive.xml looks now like this:

# archive.xml
<sitemanifest MSDeploy.ObjectResolver.createApp="Microsoft.Web.Deployment.CreateApplicationObjectResolver" MSDeploy.ObjectResolver.dirPath="Microsoft.Web.Deployment.DirPathObjectResolver" MSDeploy.ObjectResolver.filePath="Microsoft.Web.Deployment.FilePathObjectResolver">
  <iisApp path="WebSite" MSDeploy.path="2" MSDeploy.MSDeployLinkName="Child11" MSDeploy.MSDeployKeyAttributeName="path" MSDeploy.MSDeployProviderOptions="H4sIAAAAAAAEAE2Q306DMBTGQUeTRW/2BjwAEP6NMhMu5nZnVKKLu5CbFg7aWKCBdsueXtuEqOfi63dO0vP7cizbsqxvXeY1dXul5f2R1eMwDa0MzkCDBgQfLh300nPfYJzY0Bc4iIIwCD13p7hUIxQ9KDkS7rmlopzVD3A5DF/QF0lE2yRfZ6RJshSStWNI8R/gqAH7X8A/W47DiTUwPgupgdPChBPz7Il0sBBEfjq9dhM6Ea5gsm2ETHx0bYSxaSsEMv9ednfVvWK82X7oxZWETlTU9AdtlGiIhOO+9DGN2pzWtV8nOPLTFLBPsg32Md40MeRhTOOw0nlfmYSlo/cukZaVM59uhWZz8wOciw/7VgEAAA==">
	<createApp path="WebSite" MSDeploy.path="2" isDest="AA==" MSDeploy.isDest.Type="Microsoft.Web.Deployment.DeploymentObjectBooleanAttributeValue" managedRuntimeVersion="" MSDeploy.managedRuntimeVersion="2" enable32BitAppOnWin64="" MSDeploy.enable32BitAppOnWin64="2" managedPipelineMode="" MSDeploy.managedPipelineMode="2" applicationPool="" MSDeploy.applicationPool="1" appExists="True" MSDeploy.appExists="1" MSDeploy.MSDeployLinkName="createApp" MSDeploy.MSDeployKeyAttributeName="path" />
	<contentPath path="WebSite" MSDeploy.path="2" MSDeploy.MSDeployLinkName="contentPath" MSDeploy.MSDeployKeyAttributeName="path" MSDeploy.MSDeployProviderOptions="H4sIAAAAAAAEAE2QzU6DQBSFQcskTd30DXgAIPyVoSYstN0ZlWhjF7KZn4sSgSEw06ZPrzMJUe/izJmbufc7Gcu2LOtblzlN3VxpeX9s2CgmUcvgDDTgMLTi0kEvPfcNxqkRfYGDKAiD0HN3qpVqhKIHJUfSem6paNuwB7gcxBf0RRLROsk3GeFJlkKycQwp/gMcNWD/C/hny1GcGg7j8yA1cFqYcMPceyIdLAYiP51euwmdSKtgsm2ETHx0rWXFRC/NGv0KmeGX3W11r5qW333odiWhGypq7gdt1MCJhOO+9DGN6pwy5rMER36aAvZJtsU+xlseQx7GNA4rHfq1kbB09N4l0rJ25v9bo9msfgB8ltwYWwEAAA==">
	  <MSDeploy.dirPath path="WebSite" MSDeploy.MSDeployLinkName="contentPath" />
	</contentPath>
  </iisApp>
</sitemanifest>

You still need to declare the user and database name in the installation script, because it does not skip the installation in the script. It just doesn’t install it when the task is running. In the end the script approves, that the Database exists and they are accessible for the declared users. If this check is working, you can skip the installation tasks.

Stefan Busch
VIU AG Rennweg 38 8001 Zürich CH-Switzerland
Imprint