MP025CRITICALFree
ban-concurrent-in-transaction
What It Detects
CONCURRENTLY operations inside a transaction block always fail at runtime.
Why It's Dangerous
CREATE INDEX CONCURRENTLY, DROP INDEX CONCURRENTLY, and REINDEX CONCURRENTLY cannot run inside a transaction. If your migration framework wraps in BEGIN/COMMIT, the operation will error.
Bad Example
BEGIN; CREATE INDEX CONCURRENTLY idx_users_email ON users (email); COMMIT;
Good Example
-- Must run outside a transaction CREATE INDEX CONCURRENTLY idx_users_email ON users (email);
Configuration
Disable this rule:
# .migrationpilotrc.yml rules: MP025: false
Or change its severity:
# .migrationpilotrc.yml
rules:
MP025:
severity: warning