我有一个 Django webapp,目前正在使用 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
并且仍然完全相同的错误。
谢谢