From 00aa3e0b9b8fac8fa5adab47249790d2ee2f767e Mon Sep 17 00:00:00 2001 From: Hannes Ljungberg Date: Fri, 15 Oct 2021 22:17:26 +0200 Subject: [4.0.x] Fixed #33194 -- Fixed migrations when altering a field with functional indexes/unique constraints on SQLite. This adjusts Expressions.rename_table_references() to only update alias when needed. Regression in 83fcfc9ec8610540948815e127101f1206562ead. Co-authored-by: Simon Charette Backport of 86971c40909430a798e4e55b140004c4b1fb02ff from main --- django/db/backends/ddl_references.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'django') diff --git a/django/db/backends/ddl_references.py b/django/db/backends/ddl_references.py index c06386a2fa..f798fd648b 100644 --- a/django/db/backends/ddl_references.py +++ b/django/db/backends/ddl_references.py @@ -212,11 +212,7 @@ class Expressions(TableColumns): def rename_table_references(self, old_table, new_table): if self.table != old_table: return - expressions = deepcopy(self.expressions) - self.columns = [] - for col in self.compiler.query._gen_cols([expressions]): - col.alias = new_table - self.expressions = expressions + self.expressions = self.expressions.relabeled_clone({old_table: new_table}) super().rename_table_references(old_table, new_table) def rename_column_references(self, table, old_column, new_column): -- cgit v1.3