diff options
| author | David Wobrock <david.wobrock@gmail.com> | 2022-05-26 07:26:33 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-05-26 09:07:23 +0200 |
| commit | 176d5ec2422bf7513ef5d58953c6c74377c4170f (patch) | |
| tree | bfb8628f8e520f3c82151164f643b462ced466fe | |
| parent | 44e754fc839b48a360c6c3e9b07fdc86b37d48ba (diff) | |
[4.1.x] Refs #23740 -- Added BaseDatabaseSchemaEditor._unique_constraint_name().
Backport of 115a978fceac4c4de2f9fc70ce19001c3f6d6918 from main
| -rw-r--r-- | django/db/backends/base/schema.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/django/db/backends/base/schema.py b/django/db/backends/base/schema.py index f2ca8c8df9..3f3ce54c9a 100644 --- a/django/db/backends/base/schema.py +++ b/django/db/backends/base/schema.py @@ -1560,16 +1560,13 @@ class BaseDatabaseSchemaEditor: ): return None - def create_unique_name(*args, **kwargs): - return self.quote_name(self._create_index_name(*args, **kwargs)) - compiler = Query(model, alias_cols=False).get_compiler( connection=self.connection ) table = model._meta.db_table columns = [field.column for field in fields] if name is None: - name = IndexName(table, columns, "_uniq", create_unique_name) + name = self._unique_constraint_name(table, columns, quote=True) else: name = self.quote_name(name) if condition or include or opclasses or expressions: @@ -1592,6 +1589,17 @@ class BaseDatabaseSchemaEditor: include=self._index_include_sql(model, include), ) + def _unique_constraint_name(self, table, columns, quote=True): + if quote: + + def create_unique_name(*args, **kwargs): + return self.quote_name(self._create_index_name(*args, **kwargs)) + + else: + create_unique_name = self._create_index_name + + return IndexName(table, columns, "_uniq", create_unique_name) + def _delete_unique_sql( self, model, |
