Making Django unique constraints case-insensitive (with no downtime)

Making Django unique constraints case-insensitive (with no downtime)

Articles
Fix Django’s case-sensitive unique constraint pitfalls by cleaning duplicates, adding Lower() constraints, and safely migrating with PostgreSQL CONCURRENTLY to avoid downtime.