Предотвращение создания устаревшей таблицы в программе запуска тестов django

У меня есть база данных mariadb, которая раньше имела конфигурацию CHARSET utf8 COLLATE utf8_general_ci, а теперь CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci. Все таблицы имеют те же CHARSET и COLLATE, что и в базе данных.

Когда я запускаю ./manage.py test, стектрейс выглядит следующим образом:

....
django.db.utils.OperationalError: (1118, 'Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.')

Мне удалось выяснить, что это за проблемная таблица, и sql-запрос выглядит следующим образом. Обратите внимание, что я изменил названия таблицы и полей для безопасности:

Если я запускаю этот запрос в sql-редакторе, то ошибка выглядит так же, как и в django. Эта ошибка не возникала, когда я создавал базу данных с исчезнувшей парой characterset и collate. Но когда я запускаю тест, он выдает ошибку . Одной из причин может быть другой набор символов.

Поэтому я удалил модель и применил миграции, поскольку эта модель больше не используется. Итак, stale.

Но даже после того, как модель стерта, django test runner все равно, похоже, не решается создать эту старую таблицу.

Проходит ли django test runner через все файлы миграции с самого начала? Вот почему я не могу запустить тест против модели, которая была создана со старым charset и collate?

Как я могу предотвратить создание в тестовом бегуне django устаревшей, больше не существующей таблицы, потому что старая таблица конфликтует по charset и collate с новой таблицей, без изменения charset и collate базы данных?

Вернуться на верх