summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2022-07-27 21:36:25 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-08-01 09:30:48 +0200
commitcb7fbac9f8a93d730be66815620d5769aad521bc (patch)
treeac6a97069895e276aa0011a73f0d440d36d2a157
parent840d009c06e7bcff2e312f68b6bdd5d9926cc9e6 (diff)
[3.2.x] Fixed collation tests on MySQL 8.0.30+.
The utf8_ collations are renamed to utf8mb3_* on MySQL 8.0.30+. Backport of 88dba2e3fd64b64bcf4fae83b256b4f6f492558f from main.
-rw-r--r--django/db/backends/mysql/features.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/django/db/backends/mysql/features.py b/django/db/backends/mysql/features.py
index a37fe81cbd..1a9f5da39e 100644
--- a/django/db/backends/mysql/features.py
+++ b/django/db/backends/mysql/features.py
@@ -51,9 +51,15 @@ class DatabaseFeatures(BaseDatabaseFeatures):
@cached_property
def test_collations(self):
charset = 'utf8'
- if self.connection.mysql_is_mariadb and self.connection.mysql_version >= (10, 6):
- # utf8 is an alias for utf8mb3 in MariaDB 10.6+.
- charset = 'utf8mb3'
+ if (
+ self.connection.mysql_is_mariadb
+ and self.connection.mysql_version >= (10, 6)
+ ) or (
+ not self.connection.mysql_is_mariadb
+ and self.connection.mysql_version >= (8, 0, 30)
+ ):
+ # utf8 is an alias for utf8mb3 in MariaDB 10.6+ and MySQL 8.0.30+.
+ charset = "utf8mb3"
return {
'ci': f'{charset}_general_ci',
'non_default': f'{charset}_esperanto_ci',