【发布时间】:2010-09-21 23:23:20
【问题描述】:
简而言之:如何在 Django 模型中指定 BIGINT?
在我正在使用 Django(0.97-svn 版本)进行的当前项目中,我将所有模型中的所有整数字段都定义为 IntegerField。在我使用 SQLite 作为数据库后端的开发周期中,它运行良好。然而,当我开始使用 MySQL 时,我注意到对于其中一个 IntegerFields,MySQL 正在截断数据——显然,由于我仍然不知道的原因,SQLite 没有抱怨。我查看了架构,发现 Django 中的 IntegerField 在 MySQL 中表示为 INT(11) 字段。当然,MySQL 截断数据的原因是数据长度超过 11 位。要解决此问题,我必须手动将列更新为,在本例中为 BIGINT(20)。 Django 和 MySQL 与之和平共处。但是每当我重置包含该 BIGINT 的模型的应用程序时,Django 再次将其创建为 INT(11)。我查看了 Django 文档,但没有找到任何东西。我是否忽略了什么?
谢谢。
【问题讨论】: