Skip to content

index-concurrently

CREATE INDEX without CONCURRENTLY — locks the table against writes.

Why

Building an index normally blocks writes to an existing PostgreSQL table for the duration of the build.

Fix

Use CREATE INDEX CONCURRENTLY in a nontransactional migration.

Examples

Before — flagged Blocking index build on an existing table
migrations/002_email_index.sql
CREATE INDEX users_email_idx ON users (email);
After — preferred Concurrent index build
migrations/002_email_index.sql
CREATE INDEX CONCURRENTLY users_email_idx ON users (email);