diff --git a/docs/release-notes/version-3.0.md b/docs/release-notes/version-3.0.md index 2cf513c38..9ea90aecf 100644 --- a/docs/release-notes/version-3.0.md +++ b/docs/release-notes/version-3.0.md @@ -2,6 +2,9 @@ ## v3.0-beta1 (FUTURE) +!!! warning "Existing Deployments Must Upgrade from v2.11" + Upgrading an existing NetBox deployment to version 3.0 **must** be done from version 2.11.0 or later. If attempting to upgrade a deployment of NetBox v2.10 or earlier, first upgrade to a NetBox v2.11 release, and then upgrade from v2.11 to v3.0. This will avoid any problems with the schema migration optimizations implemented in version 3.0. + ### Breaking Changes * Python 3.6 is no longer supported. diff --git a/upgrade.sh b/upgrade.sh index bd8a8d2d7..ffd0aa301 100755 --- a/upgrade.sh +++ b/upgrade.sh @@ -56,6 +56,22 @@ else echo "Skipping local dependencies (local_requirements.txt not found)" fi +# Test schema migrations integrity +COMMAND="python3 netbox/manage.py showmigrations" +eval $COMMAND > /dev/null 2>&1 || { + echo "--------------------------------------------------------------------" + echo "ERROR: Database schema migrations are out of synchronization. (No" + echo "data has been lost.) If attempting to upgrade to NetBox v3.0 or" + echo "later, first upgrade to a v2.11 release to ensure schema migrations" + echo "have been correctly prepared. For further detail on the exact error," + echo "run the following commands:" + echo "" + echo " source ${VIRTUALENV}/bin/activate" + echo " ${COMMAND}" + echo "--------------------------------------------------------------------" + exit 1 +} + # Apply any database migrations COMMAND="python3 netbox/manage.py migrate" echo "Applying database migrations ($COMMAND)..."