﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
31653	Add PostgreSQL operations to add constraints via NOT VALID / VALIDATE CONSTRAINT	Adam Johnson	Sanskar Jaiswal	"If you read the ALTER TABLE PostgreSQL docs ( https://www.postgresql.org/docs/12/sql-altertable.html ) for `ADD CONSTRAINT`, you'll see that it supports the `NOT VALID` option. This prevents the constraint from being checked against all existing data, although it does affect all inserted/updated rows. Adding a constraint this way does not exclusively lock the whole table to check it. To promote it to valid, the `VALIDATE CONSTRAINT` syntax can be used. This allows a non-exclusive lock on the table to validate all existing rows. This two step techinque allows constraints to be added to very active tables without locking out concurrent access and thus inflicting downtime.

I suggest `django.contrib.postgres` add custom operations for these commands, with appropriate documentation around using them in non-atomic migrations."	New feature	closed	contrib.postgres	dev	Normal	fixed		Simon Charette	Ready for checkin	1	0	0	0	0	0
