当我运行迁移时,uuid 字段总是在更新,它会给我一些性能问题,任何人都可以向我解释原因和解决方案
Posted
技术标签:
【中文标题】当我运行迁移时,uuid 字段总是在更新,它会给我一些性能问题,任何人都可以向我解释原因和解决方案【英文标题】:when i run migrate the uuid is field is updating always will it give me some perfomance issue is anyone can explain me the reason and solution 【发布时间】:2022-01-14 05:20:30 【问题描述】:class Customer(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE,blank=True,null=True)
activate_token = models.CharField(max_length=200,default=str(uuid.uuid4()))
forget_password_token = models.CharField(max_length=200,default=str(uuid.uuid4()))
first_name = models.CharField(max_length=100,blank=True,null=True)
last_name = models.CharField(max_length=100,blank=True,null=True)
status = models.CharField(max_length=100,blank=True,null=True)
email = models.CharField(max_length=100,blank=True,null=True)
gender = models.CharField(max_length=50,blank=True,null=True)
city = models.CharField(max_length=100,blank=True,null=True)
country = models.CharField(max_length=100,blank=True,null=True)
Accounts\migrations\0010_alter_customer_activate_token_and_more.py
- Alter field activate_token on customer
- Alter field forget_password_token on customer
Migrations for 'Store':
Store\migrations\0004_product_shipping_charges_alter_product_price.py
- Add field shipping_charges to product
- Alter field price on product
我有一个客户模型,我存储了两件事,一个是用户激活令牌,另一个是忘记密码令牌,我希望它是随机的,所以我使用了 uuid,但是当我运行迁移时,这种迁移总是以我的方式发生我没有遇到任何功能错误一切正常,但我觉得它可能会给我一个错误
【问题讨论】:
【参考方案1】:只需将 uuid4 函数调用替换为可调用的(即不带括号),Django 就会知道 uuid 意味着保持不变。
forget_password_token = models.CharField(max_length=200,default=uuid.uuid4)
【讨论】:
那不行兄弟 @sarangkkl,请移除 uuid.uuid4 周围的 str() 函数,并确保已导入 uuid。以上是关于当我运行迁移时,uuid 字段总是在更新,它会给我一些性能问题,任何人都可以向我解释原因和解决方案的主要内容,如果未能解决你的问题,请参考以下文章