From 39b8eb0ae090a885ecad3bd6298e905a1776b1fb Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Thu, 17 Feb 2022 14:14:23 -0500 Subject: [PATCH] Fixes #8656: Fix migration error when upgrading from a v2.11 database --- docs/release-notes/version-3.2.md | 1 + netbox/dcim/migrations/0146_modules.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/docs/release-notes/version-3.2.md b/docs/release-notes/version-3.2.md index 47614d9a9..5f58eeb17 100644 --- a/docs/release-notes/version-3.2.md +++ b/docs/release-notes/version-3.2.md @@ -147,6 +147,7 @@ Where it is desired to limit the range of available VLANs within a group, users ### Bug Fixes (From Beta) * [#8655](https://github.com/netbox-community/netbox/issues/8655) - Fix AttributeError when viewing cabled interfaces +* [#8656](https://github.com/netbox-community/netbox/issues/8656) - Fix migration error when upgrading from a v2.11 database * [#8659](https://github.com/netbox-community/netbox/issues/8659) - Fix display of multi-object custom fields after deleting related object * [#8661](https://github.com/netbox-community/netbox/issues/8661) - Fix ValueError exception when trying to connect a cable * [#8670](https://github.com/netbox-community/netbox/issues/8670) - Fix filtering device components by installed module diff --git a/netbox/dcim/migrations/0146_modules.py b/netbox/dcim/migrations/0146_modules.py index 0b0282c80..11324fc58 100644 --- a/netbox/dcim/migrations/0146_modules.py +++ b/netbox/dcim/migrations/0146_modules.py @@ -14,6 +14,31 @@ class Migration(migrations.Migration): ] operations = [ + # Rename any indexes left over from the old Module model (now InventoryItem) (#8656) + migrations.RunSQL( + """ + DO $$ + DECLARE + idx record; + BEGIN + FOR idx IN + SELECT indexname AS old_name, + replace(indexname, 'module', 'inventoryitem') AS new_name + FROM pg_indexes + WHERE schemaname = 'public' AND + tablename = 'dcim_inventoryitem' AND + indexname LIKE 'dcim_module_%' + LOOP + EXECUTE format( + 'ALTER INDEX %I RENAME TO %I;', + idx.old_name, + idx.new_name + ); + END LOOP; + END$$; + """ + ), + migrations.AlterModelOptions( name='consoleporttemplate', options={'ordering': ('device_type', 'module_type', '_name')},