【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成功
主键更新成功
好记性不如烂笔头