title: Upgrading from Previous Versions category: Getting Started tags: upgrade, migration, version, database, compatibility priority: Normal
Upgrading from Previous Versions
This guide covers the process of upgrading an existing IdentityCenter installation to a newer version. IdentityCenter is designed for straightforward upgrades with automatic database migrations, but proper planning and backups are essential.
Pre-Upgrade Checklist
Before starting any upgrade, complete every item on this checklist:
- Back up the database -- Take a full SQL Server backup of the IdentityCenter database
- Back up configuration files -- Copy
appsettings.json,appsettings.Production.json, and any custom configuration - Back up the application directory -- Copy the entire application folder as a rollback point
- Review the release notes -- Check for breaking changes, deprecated features, and new requirements
- Verify .NET runtime compatibility -- Confirm the target version's required .NET runtime is installed
- Verify SQL Server version -- Ensure your SQL Server meets the minimum version for the new release
- Check disk space -- Ensure sufficient disk space for the new application files and any database growth
- Notify stakeholders -- Inform your team about the maintenance window
- Stop scheduled sync jobs -- Disable or pause active sync schedules to prevent mid-upgrade conflicts
Tip: Always test the upgrade on a staging environment before applying it to production. Clone your production database to a test SQL Server instance and run the full upgrade there first.
Database Backup
The most critical pre-upgrade step is backing up your database. Use one of these methods:
SQL Server Management Studio:
- Right-click the IdentityCenter database
- Select Tasks > Back Up
- Choose Full backup type
- Save to a secure location
T-SQL:
BACKUP DATABASE [IdentityCenter]
TO DISK = N'C:\Backups\IdentityCenter_PreUpgrade.bak'
WITH FORMAT, COMPRESSION, STATS = 10;
Verify the backup is complete and restorable before proceeding.
Upgrade Process
Step 1: Stop the IdentityCenter Service
If running as a Windows Service:
Stop-Service -Name "IdentityCenter"
If running under IIS:
Stop-WebAppPool -Name "IdentityCenterAppPool"
If running as a systemd service on Linux:
sudo systemctl stop identitycenter
Step 2: Replace Application Files
- Extract the new release package to a temporary directory
- Copy the new files over the existing application directory
- Preserve your existing configuration files (
appsettings.json,appsettings.Production.json) - If the release notes mention new configuration settings, merge them into your existing files
Important: Do not delete your existing
appsettings.Production.json. New releases may add default settings toappsettings.json, but your production overrides should remain intact.
Step 3: Start the Service
Start the IdentityCenter service. On startup, the application will automatically run any pending database migrations.
Start-Service -Name "IdentityCenter"
Step 4: Monitor Startup
Watch the application logs during the first startup after an upgrade:
- Database migrations will run automatically via
DatabaseMigrationService - Each migration script (V001, V002, etc.) is idempotent and checks for existing schema before making changes
- The
SchemaVerificationServicevalidates the database schema after migrations complete - Startup logs will report which migrations were applied and whether verification passed
Step 5: Verify the Upgrade
After the service starts successfully:
- Open the web portal and confirm you can log in
- Check System Center for any errors or warnings
- Review the About page to confirm the version number
- Run a test sync on a small sync project to verify synchronization works
- Verify policies still evaluate correctly by checking the Policies dashboard
- Test email delivery by sending a test notification
- Check the Processing Center to confirm scheduled jobs are running
Database Migration System
IdentityCenter uses an embedded migration system instead of Entity Framework migrations at runtime. Understanding how it works helps during upgrades.
How Migrations Work
| Component | Purpose |
|---|---|
DatabaseMigrationService |
Orchestrates migration execution on startup |
SchemaVerificationService |
Validates database schema after migrations |
| SQL Scripts (V001-V006+) | Embedded resources in DataAccessLibrary/Migrations/Scripts/ |
| Migration History Table | Tracks which scripts have been applied |
Migration Script Conventions
| Script | Purpose |
|---|---|
| V001 | Baseline marker |
| V002 | ChangeAuditLog indexes (guards for existing tables) |
| V003 | Objects table columns (guards for existing tables) |
| V004 | Complete initial schema (105 tables, 191 indexes, 99 foreign keys) |
| V005 | Seed default data (roles, admin user, settings, schedule templates) |
| V006 | Deduplicate Objects and add unique filtered index |
Each migration script:
- Checks whether its changes have already been applied before executing
- Uses
IF NOT EXISTSguards for table and index creation - Is safe to re-run without causing errors or data loss
- Executes within a transaction where possible
Fresh vs. Existing Databases
On a fresh installation, all migration scripts run in sequence to build the complete schema. On an existing installation, only new scripts (those not yet recorded in the migration history) are executed. The result is the same final schema regardless of the starting point.
Version Compatibility Matrix
| IdentityCenter Version | .NET Runtime | SQL Server Minimum | Breaking Changes |
|---|---|---|---|
| 1.0.x | .NET 8.0 | SQL Server 2019 | Initial release |
| 1.1.x | .NET 8.0 | SQL Server 2019 | New sync step types added |
| 1.2.x | .NET 8.0 | SQL Server 2019 | Person matching updated |
| 1.3.x | .NET 8.0 | SQL Server 2019 | Object write-back architecture |
Note: Always consult the release notes for the specific version you are upgrading to. The table above is a general reference.
Rollback Procedures
If the upgrade fails or introduces unexpected issues, you can roll back:
Step 1: Stop the Service
Stop-Service -Name "IdentityCenter"
Step 2: Restore Application Files
Replace the application directory with the backup you created before the upgrade.
Step 3: Restore the Database
USE [master];
ALTER DATABASE [IdentityCenter] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [IdentityCenter]
FROM DISK = N'C:\Backups\IdentityCenter_PreUpgrade.bak'
WITH REPLACE;
ALTER DATABASE [IdentityCenter] SET MULTI_USER;
Step 4: Start the Previous Version
Start-Service -Name "IdentityCenter"
Verify the rollback by checking the version number and running a test sync.
Breaking Changes to Watch For
When reviewing release notes, pay special attention to:
| Change Type | Impact | Action Required |
|---|---|---|
| Schema changes | New columns, tables, or indexes | Automatic via migration scripts |
| Removed features | Features that no longer exist | Update workflows that depend on them |
| API changes | Endpoint or payload modifications | Update any external integrations |
| Configuration changes | New or renamed settings | Merge into your appsettings.Production.json |
| Service account permissions | New permissions required | Update AD delegation or SQL roles |
Best Practices
- Always test in staging first -- Clone your production database and run the upgrade in a staging environment before touching production.
- Upgrade during a maintenance window -- Schedule upgrades outside business hours to minimize impact on sync schedules and user access.
- Have a rollback plan ready -- Verify your database backup is restorable before starting the upgrade.
- Upgrade incrementally -- If you are multiple versions behind, consider upgrading one major version at a time rather than jumping directly to the latest.
- Review sync results after upgrade -- Run full syncs on all projects after upgrading and verify object counts match expectations.
- Keep audit logs -- Do not truncate audit log tables before upgrading. They may be needed for post-upgrade verification.
Next Steps
- System Requirements -- Verify your environment meets requirements for the new version
- Quick Config Wizard -- Re-run the wizard if new setup steps were added
- Sync Troubleshooting -- Resolve any sync issues after upgrading
- Connection Troubleshooting -- Verify connections are healthy post-upgrade