Upgrading
This guide covers upgrading UmbNav between major versions, including the automatic data migration process.
Upgrading to UmbNav 4.x
Prerequisites
Umbraco 17+ - Upgrade Umbraco first
Backup - Always backup your database before upgrading
.NET 10 - Ensure your project targets .NET 10
Upgrade Steps
Remove old package references
Add new package:
dotnet add package Umbraco.Community.UmbNavBuild and run:
dotnet build dotnet runAutomatic migration runs on first startup
Automatic Data Migration
UmbNav 4.x includes an automatic migration system that runs on first startup after upgrading. This migration:
Detects legacy data types using the old
AaronSadler.UmbNavproperty editor aliasTransforms content data from the old format to the new format
Updates data type definitions to use the new
Umbraco.Community.UmbNavaliasPreserves all menu data including nested children, images, and settings
What Gets Migrated
udi
contentKey
Converted from UDI to GUID
title
name
Title takes precedence over name
name
name
Used if title is empty
url
url
Preserved
itemType (Link)
itemType (External)
Renamed
itemType (Content)
itemType (Document)
Renamed
itemType (Label)
itemType (Title)
Renamed
anchor
anchor
Preserved
target
target
Preserved
noopener (bool)
noopener (string)
Converted to string
noreferrer (bool)
noreferrer (string)
Converted to string
children
children
Recursively migrated
image
imageArray
Preserved
customClasses
customClasses
Preserved
hideLoggedIn
hideLoggedIn
Preserved
hideLoggedOut
hideLoggedOut
Preserved
includeChildNodes
includeChildNodes
Preserved
description
description
Preserved
icon
icon
Preserved
Item Type Mapping
Link (0)
External
Content (1)
Document
Label (2)
Title
Migration Process
The migration runs automatically via Umbraco's package migration system:
Verifying Migration
After upgrade, verify the migration completed:
Check Umbraco logs for migration messages:
Check data types - Should now use
Umbraco.Community.UmbNavaliasTest navigation - Verify menus render correctly on frontend
Troubleshooting Migration
Migration didn't run:
Check if
umbracoKeyValuetable has the migration keyDelete the key to re-run:
786E9C82-8621-4B0E-8E3A-7A7AAD61B820
Content not migrated:
Check logs for errors
Verify content isn't trashed (trashed content is skipped)
Manual migration may be needed for edge cases
Data type not updated:
Check logs for "Unable to update data type" errors
Manually change the property editor alias if needed
Breaking Changes in 4.x
Frontend (TypeScript)
New extension system - Old AngularJS extensions won't work
Lit components - UI rebuilt with Lit web components
New API imports - Use
/App_Plugins/UmbNav/dist/api.js
Backend (C#)
Virtual methods - Service methods are now virtual for extension
UmbNavBuildOptions - New class for menu processing options
Item type enum -
UmbNavItemTypevalues renamed
Data Model
noopener/noreferrer - Changed from
booltostringcontentKey - Now uses
Guidinstead of UDI stringitemType - Enum values renamed (see table above)
Upgrading from 2.x to 3.x
This upgrade path is for moving from Umbraco 10-13 to Umbraco 14+.
Key Changes
AngularJS to Lit - Complete frontend rewrite
New property editor - Different backoffice UI
Same data format - Content data compatible
Steps
Upgrade Umbraco to 14+
Update package reference
Rebuild and test
Upgrading from 1.x to 2.x
This upgrade path is for moving from Umbraco 8/9 to Umbraco 10+.
Key Changes
.NET upgrade - Framework to modern .NET
Package restructure - New namespace
Same features - Backward compatible
Steps
Upgrade Umbraco to 10+
Update package reference
Update any custom code namespaces
Rebuild and test
Rollback
If you need to rollback after upgrading:
Restore database backup
Restore previous package version:
Rebuild and deploy
Warning: Rolling back after migration will lose any content changes made after the upgrade.
Getting Help
GitHub Issues: Report migration problems
Logs: Include Umbraco logs when reporting issues
Database backup: Always have a backup before upgrading
Last updated
Was this helpful?