Upgrading EmpowerID
Overview
The first step in any upgrade process is to learn about the process itself so that you can plan and prepare appropriately. This article will help you understand the entire EmpowerID upgrade process, beginning with the relevant background information one should be aware of before starting the upgrade process.
As IAM implementations are complex by nature and typically impact the most sensitive and integrated enterprise directories and applications with the technology infrastructure, successfully upgrading EmpowerID cannot be taken without understanding the processes involved.
The below image shows the flow for performing a successful upgrade:

Planning and System Prep
When upgrading EmpowerID, you must be logged in as a user with rights to alter the EmpowerID database on the target SQL server. Additionally, please make sure you have saved any customizations to EmpowerID workflows in a custom package to avoid having the restoration process overwrite your custom workflows.
This phase of the upgrade process is for determining the "why" and "what" for performing an upgrade. You should determine beforehand the reason for the upgrade, what is the goal of the upgrade and what is expected from the upgrade. This includes the following points:
- You should document the reason for the upgrade. For example:
- To use new product features
- Running an unsupported EmpowerID version
- To fix a blocking issue that cannot be patched
- You should document the EmpowerID version and user stories currently used in your production environment. This helps ensure the integrity of the upgrade.
- You should document any blocking and critical support issues occurring in your current version. This helps you determine whether the new version addresses those issues.
- You should review the hardware and software requirements for new version (SQL, .NET, PowerShell etc.).
- You should run the EmpowerID System Prep tool to check whether your current environment supports all system prerequisites needed by the new version.
You can download the EmpowerID System Prep tool at https://support.empowerid.com/hc/en-us/articles/205653018-How-to-use-the-EmpowerID-System-Preparation-Tool
After determining that your system meets the requirements for the upgrade, you need to do the following to prep your system for the upgrade process:
- Backup/Export the HKEY_LOCAL_MACHINE\SOFTWARE\TheDotNetFactory registry hive on each of the EmpowerID servers.
- Copy the upgrade source files to each of the EmpowerID servers that will be upgraded.
- From the DBUpgradeUtility folder you just copied, run the msi program. If the installer says there is already a newer version installed simply cancel and move on.
- Perform a full backup of the EmpowerID database for system rollback if required.
- For purposes of being able to roll back quickly in the event of complications or errors in the upgrade process, we recommend leaving the existing EmpowerID servers untouched with the services turned off until the upgrade has been successfully completed and verified on the first server. We recommend performing the upgrade on one of the Web Servers initially.
- Stop all services and IIS processes on all EmpowerID servers.
- Copy the ..\program files\TheDotNetFactory directory from the Web server that you will be performing the upgrade on to a backup location that can be accessed later if required.
- Uninstall EmpowerID from the server you are upgrading and then restart the server.
Upgrading the Database
The first step in performing the upgrade of EmpowerID is to update the database with the new schema and default data required by the new version of EmpowerID. This section walks you through using the SQL tools and scripting required to perform this upgrade.
DBUpgradeUtility
This utility application is used to upgrade the target database with any new schema elements as well as any additional default data records that are required by the new version of EmpowerID. The method of upgrading the schema of the database is to generate an XML file with the current database schema of the target database (your current EmpowerID database), compare it to the shipping version XML file provided, and then generate an XML file with the deltas between the two XML files. This Delta file will then be used to upgrade the schema of the target database.
Once the schema has been upgraded, a series of SQL scripts will be run against the target database to populate any missing default data records into the database that are necessary for the new functionality of the upgraded EmpowerID system.
Database Upgrade Process
The database upgrade should be performed from one of the tools servers that has the SQL Management Studio loaded. Within these instructions, "Target Database" will refer to the EmpowerID database that is being upgraded, and "Source Database" will refer to the new database reference database that was restored to the SQL server.
The process for upgrading the EmpowerID database differs depending on your current version of EmpowerID. If you are using a build that is prior to 142 you need to first follow the steps for upgrading the database to build 142 and then follow the steps for upgrading the database from build 142 to the latest version of EmpowerID. If you are upgrading from build 142 or newer, go directly to step two.
DB Upgrade Step 1: Upgrading the EmpowerID Database to Build 142
The upgrade must be performed in a Development environment first. Please review Upgrading EmpowerID#Upgrade Best Practices before you continue.
- Download the SQL upgrade utility by pointing your browser to dl.empowerid.com/SQLUpgradeUtility.zip.
- Download the clean database backup file for the version of EmpowerID that you are upgrading to. Make sure all the prerequisites are on the server.
- Stop all services on your EmpowerID servers.
- On the SQL server in which you are upgrading the EmpowerID database, perform a restore of the clean database backup file. Name the database as EmpowerID_version Number (e.g., EmpowerID_6.0.142.0).
- From the SQL Upgrade folder, run UI.exe as an administrator to start the schema upgrade process. This can be run on any server as long as it has connectivity to the SQL server that has the original EmpowerID database and the clean copy you are restoring. It doesn't need to be on the SQL server itself, but please download the Files in step 4 of the preparation on the same server you are running the Upgrade from).
If you have not run the prerequisites for the SQL upgrade utility then you might need to install SharedManagementObjects and SQLSysClrTypes located in the SQL Upgrade folder.
- In the first tab, Step 1- Create Definition Files, enter the fully qualified name of the SQL server into the Server field and the name of the Database you are upgrading into the Database field. For the output path, enter the path to the "Files" folder in the DBUpgradeUtility folder. Select the "For Target" radio button and then click the "Create Database Definition File" button. Please note that this process can take up to 40 minutes.
- Once the Definition has been created, click the OK button on the resulting dialog and then close the UI.exe program and verify that the target schema definition XML file has been created. The name of the file should be "EmpowerID.xml"
- Run the UI.exe again and select the "Step 2 - Generate Upgrade Scripts" tab. Select the source (provided by EmpowerID) and target definition (generated in the previous step) files and then click "Generate Upgrade Commands".
- Click OK when prompted to review differences between objects.
- Click Finish.
- Reopen UI.exe, select the Step 3 - Upgrade Target Database tab and then browse to the newly generated file.
- Click Upgrade to start the upgrade process against the target database. During this process the schema will be upgraded. Any conflicts or issues will be displayed with a window to correct any changes.
- Finally, open SQL Server Management Studio and run the batch files provided by EmpowerID against the target database. There should be six SQL files, named batch1.sql to batch6.sql. You must execute these files in numeric order, beginning with batch1.sql and progressing to batch6.sql.
DB Upgrade Step 2: Upgrading the Database from Build 142
- Download the SQL Upgrade folder by using the link given to you by the EmpowerID team.
- Download the PowerShell scripts used for upgrading the database by using the link given to you by the EmpowerID team. The name of the scripts will be applyDbChanges.ps1 and applyDbChanges.Methods.ps1.
- Move the PowerShell scripts into the folder downloaded from Step 1.
- Open a PowerShell session as an administrator and navigate the PS scripts location.
- Run the following command to execute all the schema changes, stage data import and sync data into the database:
.\applyDbChanges.ps1 -conStr 'Connection string From EmpowerID Server' -filesPath '.\' -execSql $true -importTblData $true
Once these steps are completed, perform an update statistics and then backup the upgraded database once more. You may now proceed to upgrading EmpowerID on the server.
Upgrading the Servers
For the EmpowerID Programs upgrade, you will go through the upgrade process on one of the web servers first, perform the workflow studio components updates, then go back and upgrade the remaining EmpowerID servers. The installation of the EmpowerID program will proceed normally through the standard installation process with one exception being related to the launching of the configurator. EmpowerID does not support the upgrade process in silent mode.
- Navigate in the registry to HKEY_LOCAL_MACHINE\SOFTWARE\TheDotNetFactory\EmpowerID and copy the EmpowerID Database Key into a notepad before uninstalling EmpowerID from the server.
- On the server where you uninstalled EmpowerID, launch the EmpowerID MSI and proceed through the installation process until the configurator launches. At this point, you will need to close the configurator without saving anything and then click Finish on the Installer to terminate the process.
- Locate the HKEY_LOCAL_MACHINE\SOFTWARE\TheDotNetFactory\EmpowerID registry and edit the EmpowerID Database Key and Default Web Server URL and WebServerUrl key values to that for your environment.
- Launch the configurator in install mode by opening a command prompt and enter the following command, including the quotes:
"c:\Program Files\TheDotNetFactory\EmpowerID\Programs\ EmpowerID.Configurator.exe" install
- This opens the configurator and pulls in the settings of the previous installation from the database. Review the settings and adjust any that need to be changed for this installation.
The settings on the Web Server, Web Applications, and Services panels will need to be re-selected in order to set the new web site and services configuration. You will also have to re-enter the service identity credentials.
- Allow between 15 and 30 minutes for the Web Role service to register its workflow assemblies in the Global Assembly Cache.
- Once the process has finished, attempt to log in to the Web portal to verify that the system is properly functioning.
Upgrading the Customizations
If you have made any customizations to EmpowerID interfaces, workflows, components and other items, you will need to address each of the below as applicable for your environment.
Web Overrides and CDN (Theme) Overrides
- Copy the EmpowerID.Web.CDN folder to the Program Files\TheDotNetFactory\EmpowerID\Web Sites folder and confirm to overwrite existing files.
- Copy the EmpowerID.Web.Overrides folder to the Program Files\TheDotNetFactory\EmpowerID\Web Sites folder.
- Search for and run the EmpowerID Configurator one more time. On the Miscellaneous tab press the green arrow to execute the minification bundler to re-minify the JavaScript that was added in the CDN scripts folder. Press OK at the success prompt and then close the configurator without saving.
Republishing Workflow Studio Items
Any customization that has been done to workflows, libraries and components in EmpowerID will need to be republished. To do so, you need to manually republish EID Components and perform a batch refactor and publishing of all customized objects. The below steps demonstrate how to do this.
EID Components
The first item that will need to be republished is the EID Components class library. This class library contains the critical extensions and dependencies that many of the other class libraries and workflow objects require to function.
- Open Workflow Studio and log in as an All Access user.
- In the Source Control panel on the left side of the page, browse to the Class Libraries area and then double-click EID Components to open it.
- Click the Compile and Publish button located on the menu above the Workflow Studio designer.
- Follow the publishing wizard to completion, clicking No when prompted about restarting services.
- Once the publishing is complete, close Workflow Studio, restart IIS and the Web Role Service and then re-open Workflow Studio.