Django数据库如何将一个表自定义的key列还原成id列作为key
Posted inns
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django数据库如何将一个表自定义的key列还原成id列作为key相关的知识,希望对你有一定的参考价值。
【问题】makemigrations是会要求id输入默认值
例如下表UserVerifyCode,自定义了idUser这个key
修改成如下,去掉idUer的主键属性
使用python manage.py makemigrations,id是新增列,不能为空,所以必须输入默认值
解决办法
Step1:清空表的数据
Step2:上图上选择1方法,输入int(0)
Step3:
id列我们的都知道,实际上不需要默认值,这时候需要去makemigrations文件夹下,修改合并文件
文件目录
删除default=0, 代码
Step4 尝试migrate
报错有多个主键
Step5
分析makemigrations文件
发现是先添加id主键,再alter原来的主键idUser
Step6
尝试交换顺序重新migrate,出现如下提示,是makemigrations执行migrate时部分成功
前面表创建成功,但是主键更换失败,删除userlog表,重新migrate
Step7
drop userLog表之后再migrate
migrate成功
主键更新成功
以上是关于Django数据库如何将一个表自定义的key列还原成id列作为key的主要内容,如果未能解决你的问题,请参考以下文章