Blocking index removal operations during migrations
warningavailabilityUpdated Mar 24, 2026
Technologies:
How to detect:
Django migrations may not drop indices concurrently by default, causing blocking operations that lock tables and impact availability during deployments
Recommended action:
Check ./manage.py sqlmigrate output for non-concurrent index drops. Modify migrations to use RemoveIndexConcurrently (django.contrib.postgres.operations) to drop indices without blocking. Use SeparateDatabaseAndState to let Django track model state while controlling how the index is removed.