amazon-web-services - Django 错误:确保此值最多包含 5 个字符(它有 6 个)
问题描述
class User(AbstractBaseUser, TimeStampedModel):
objects = UserManager()
GENDER_MALE = "male"
GENDER_FEMALE = "female"
GENDER_OTHER = "other"
GENDER_CHOICES = (
(GENDER_MALE, "Male"),
(GENDER_FEMALE, "Female"),
(GENDER_OTHER, "Other"),
)
email = models.EmailField(unique=True)
username = models.CharField(max_length=20, unique=True)
gender = models.CharField(max_length=6, choices=GENDER_CHOICES)
它具有与上面相同的代码。
该服务正在使用 AWS 的 EB 分发,并出现错误“确保此值最多包含 5 个字符(它有 6 个)”。当用户将性别设置为女性时发生。
原代码确认出错是因为gender的maximum_length设置为5,修正为6的代码就是上图所示的代码。
但是,即使在 makemigrations - migrate - eb deploy 之后,服务中也会出现相同的错误。“确保此值最多包含 5 个字符(它有 6 个)。” 但是如果你在本地运行服务器,它可以正常工作而不会出错。
我认为连接到eb的postgresql不适用于迁移,这导致了我认为的错误。但是,通过eb日志查看迁移过程后,我们能够确认它是正常应用的,没有错误。
我错过了什么,我应该看什么?请多多指教。
+
现在还有另一个变化。在服务服务器上正确应用了相同的分发。不会产生错误。但是,即使是同一个发行版,开发服务器也会产生错误。我们应该检查 aws eb 和 rds 之间的连接吗?我应该检查什么?
解决方案
我可以想到两个选择:
- 您的数据库不是最新的。直接连接数据库并检查
django_migrations
; - 您的代码未更新。通过 ssh 连接并检查部署的代码是否符合您的预期。
推荐阅读
- mysql - 获取长文本mysql的日期名称
- ios - 登录 SFAuthenticationSession 然后在 SFSafariViewController 中打开一个执行 SSO 的链接
- python - Django“用户”对象没有属性“目标”
- visual-studio - Visual Studio 中是否有任何 UI 工具可以编辑 MSBuild 条件构造?
- javascript - 为什么这个密钥处理程序在没有警报的情况下不能工作?
- c - 如何将单链表更改为双向链表?
- java - 我没有执行任何操作,但仍然显示无法关闭连接,而事务仍处于活动状态
- javascript - 如何在 Javascript 中访问输入的值
- java - RxCamera 长宽比很奇怪
- javascript - 在数组的 .concat 上调用 .apply