У меня есть веб-приложение Django, которое в настоящее время тестируется с SQLite, но теперь я хочу развернуть и использовать MySQL, и я получаю эту ошибку.
Я получаю эту ошибку правильно при использовании python manage.py syncdb
:
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): no
DatabaseError: (1406, "Data too long for column 'name' at row 4")
А также при попытке создать объект Store
(одну из моделей) с помощью этого кода:
store_leicester = Store.objects.create(
name='Hugo Boss UK Store Leicester Square',
country='United Kingdom',
district='London',
catalog=catalog ...
)
Ошибка:
DatabaseError at /populate/
(1406, "Data too long for column 'name' at row 1")
Модель магазина, например, такова:
class Store(models.Model):
"""
Class for a Store.
"""
name = models.TextField(max_length=128)
country = models.TextField(max_length=64)
district = models.TextField(max_length=64)
catalog = models.OneToOneField('ShopCatalog', related_name='shop', null=True)
chain = models.ForeignKey('StoreChain', related_name="shops", null=True)
Теперь, естественно, эти 10-15 символов текста не превышают ограничение в 128 символов, поэтому происходит что-то еще. Начну с того, что ошибка появляется и на syncdb.
Я использую два пакета Django, которые я создал сам, которые используют модели, но я не думаю, что это проблема.
Сортировка по умолчанию для схемы была latin-1
, но я попытался переключиться на utf-8
и все равно точно такая же ошибка.
Спасибо