django.db.utils.databaseerror,
django . db . utils . internal error:(1061,技术博客重复键名_ 12351702 _博客
代码:
注意:在idc_name中,unique=True
idc_list类(型号。型号):
city=models . charfield(max _ length=32,verbose _ name= city ,help_text=如上海/烟台/洛阳/武汉等)
IDC _ name=models . charfield(unique=true,max _ length=32,verbose _ name= IDC name ,help_text=城市名称,道路名称,运营商名称如上海-大秀路-万国)
Cur _ state=models.integer字段(choices=status _ choices,verbose _ name=当前状态,default=1,help_text=是:表示正在使用,否:表示已停用)
update _ time=models . datetime field(verbose _ name=更新时间,auto_now=True)
remark=models . charfield(max _ length=32,verbose _ name= remarks ,null=true,blank=true)Python manage . py migrate
时间误差:
django . db . utils . internal error:(1061,重复的密钥名 CMDB _ IDC _ list _ IDC _ name _ 8ce 6 f 945 _ uniq )
解决方案:
连接到数据库,删除、保存并重新迁移该约束字段。
如果一次修改模型中的多个字段时报错,需要同时删除数据库中多个字段的唯一性,重新运行。
问题的原因:
经过测试,发现django的migrate不是事务性的,而是一个一个执行的。
也就是说,如果后面的动作因为某种原因被报错,那么前面的动作就会被执行。如果我的“操作”在报告为错误的操作之前,它将导致我的操作完成。事实上,这个“约束”已经存在于数据库中。当你修复了其他bug,想再次运行migrate时,他会调用生成的“migrations file”。这个文件又包含了“unique”的动作,会提示你它已经存在了。
转载请联系作者获得授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。