From 8f04473af1da1ed4e8a07e89205da4e70d69b586 Mon Sep 17 00:00:00 2001 From: David Wobrock Date: Mon, 2 May 2022 14:43:35 +0200 Subject: Fixed #25105 -- Checked deferred constraints before updating rows on PostgreSQL. --- django/db/backends/postgresql/schema.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'django') diff --git a/django/db/backends/postgresql/schema.py b/django/db/backends/postgresql/schema.py index 3053c8d370..a22ae0094f 100644 --- a/django/db/backends/postgresql/schema.py +++ b/django/db/backends/postgresql/schema.py @@ -7,6 +7,13 @@ from django.db.backends.utils import strip_quotes class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): + # Setting all constraints to IMMEDIATE to allow changing data in the same + # transaction. + sql_update_with_default = ( + "UPDATE %(table)s SET %(column)s = %(default)s WHERE %(column)s IS NULL" + "; SET CONSTRAINTS ALL IMMEDIATE" + ) + sql_delete_sequence = "DROP SEQUENCE IF EXISTS %(sequence)s CASCADE" sql_create_index = ( -- cgit v1.3