У нас есть приложение Django с помощью MariaDB 10. При попытке запустить юнит-тесты, например, так: ./manage.py test myapp
Джанго: Операционная ошибка во время работы блок тестирует
здание тестовой базы данных не может со следующей ошибкой:
django.db.utils.OperationalError: (1709, 'Index column size too large. The maximum column size is 767 bytes.')
Я уже знаю, что набор символов (utf8) и сверка (utf8_general_ci) на (200) поля VARCHAR то, что вызывает ошибку.
Я попытался удалить все файлы миграции для затронутого приложения и повторно запустить их, но это не устранило проблему. (Я новичок в python и Django, и в то время это казалось хорошей идеей ...)
Мой вопрос: как я могу исправить/пропустить эту ошибку (и любые подобные ошибки, которые могут возникнуть в дальнейшем в процессе), поэтому я могу завершить сборку тестовой базы данных?
Вы пытались уменьшить длину поля? Я не эксперт по MySQL, но я понимаю, что максимальная длина для индексирования столбцов может быть в некоторых случаях 191 символом. Однако это для utf8mb4, и вы говорите, что используете utf8, так что это может быть не проблема в вашем случае. – Alasdair
Пожалуйста, покажите нам 'SHOW CREATE TABLE' и сообщите нам, какой индекс вы пытаетесь добавить. –
'VARCHAR (200) CHARACTER SET utf8' не приведет к этой ошибке _by_ сам_. –