diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-07-07 17:02:20 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-08-01 09:29:11 +0200 |
| commit | 840d009c06e7bcff2e312f68b6bdd5d9926cc9e6 (patch) | |
| tree | 2b110e7337c08d96cc7fe8e0afdf76bbfefc967c | |
| parent | a5eba20f40a78a0d6236908502e450905afabbd7 (diff) | |
[3.2.x] Fixed inspectdb and schema tests on MariaDB 10.6+.
The utf8 character set (and related collations) is by default an alias
for utf8mb3 on MariaDB 10.6+.
Backport of 355ecd141671e34853d1ff99ffdb1a7fb95b4276 from main
| -rw-r--r-- | django/db/backends/mysql/features.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/django/db/backends/mysql/features.py b/django/db/backends/mysql/features.py index 419b2ba6f0..a37fe81cbd 100644 --- a/django/db/backends/mysql/features.py +++ b/django/db/backends/mysql/features.py @@ -47,11 +47,18 @@ class DatabaseFeatures(BaseDatabaseFeatures): supports_order_by_nulls_modifier = False order_by_nulls_first = True - test_collations = { - 'ci': 'utf8_general_ci', - 'non_default': 'utf8_esperanto_ci', - 'swedish_ci': 'utf8_swedish_ci', - } + + @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' + return { + 'ci': f'{charset}_general_ci', + 'non_default': f'{charset}_esperanto_ci', + 'swedish_ci': f'{charset}_swedish_ci', + } @cached_property def django_test_skips(self): |
