PostgreSQLDjango

Blocking index removal operations during migrations

warning
availabilityUpdated Mar 24, 2026
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.