我几乎所有其他帖子都读了同样的错误,似乎无法找到合适的解决方案。
在我的models.py文件中,我有:
class LetsSayCups(models.Model):
name = models.CharField(max_length=65535)
def __str__(self):
return str(self.name)
当我尝试将aws mysql数据加载到我的本地mysql服务器时,我收到此错误。我的models.py文件中的另一部分出现了问题,我能够解决它的方法是进入my.cnf.bak文件并更改sql_mode:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
为:
sql_mode=''
它有效!!!直到后来我才发现另一个错误。具体错误是这样的:
...
File "/Users/im_the_user/Desktop/my_company/my_project/load_items.py", line 122, in load_the_items
existing_cups = Cups.objects.get_or_create(name=cups)
...
django.db.utils.DataError: (1406, "Data too long for column 'name' at row 1")
以上......意味着我在此之前/之后遗漏了一些事情。
更新我的my.cnf.bak文件是不够的,也没有将CharField max_length设为65535.我还能尝试什么?
答案 0 :(得分:1)
您需要使用TextField
。 max_length
的{{1}}应设置为255或更低,以避免将数据库存储为CharField
的问题。
https://docs.djangoproject.com/en/1.10/ref/databases/#character-fields
答案 1 :(得分:1)
我发现my.cfn.bak只是一个备份文件。我不确定第一个问题是如何工作的,但是当我将文件重命名为my.cfn时,问题就解决了。