我需要将我的User
模型上的外键从UUIDField更改为IntegerField。我分两步完成了这个步骤:
id
重命名为old_id
并运行迁移。这生成了RenameField
操作。old_id
字段,以便自动id
字段接管。这会在RemoveField
上生成old_id
操作,为名为AddField
的{{1}}生成models.AutoField
操作。完善。数据库显示id
现在有一个User
字段,自动递增。然后我去运行应用程序并快速遇到问题:用户int id
自动生成的数据库连接表(例如models.ManyToManyField
未更新 - 他们仍然有作为UUID数据类型的user_languages
和language_id
。数据库中没有外键约束,但该字段上有索引。
如何强制Django使用user_id
列的新数据类型重新生成这些连接表?
注意:User.id
没有收到任何待处理的更改。另外,我可以丢失数据库中的数据。
答案 0 :(得分:0)
从模型中删除/注释掉字段:
<SCRIPT>
function passWord() {
var testV = 1;
var pass1 = prompt('Enter Store Code Here',' ');
while (testV < 3) {
if (!pass1)
history.go(-1);
if (pass1.toLowerCase() == "CUSTOMPASSWORD1234") {
alert('You are being redirected!');
window.open('CUSTOMPASSWORD1234.html');
break;
}
testV+=1;
var pass1 =
prompt('Access Denied - Store Code Not Recognised, Please Try Again.','Password');
}
if (pass1.toLowerCase()!="password" & testV ==3)
history.go(-1);
return " ";
}
</SCRIPT>
<CENTER>
<FORM>
<input type="button" value="Enter Store Code" onClick="passWord()">
</FORM>
</CENTER>
然后生成迁移。然后取消注释行。然后再运行一次迁移。
警告:这会导致这些表被删除并重新创建,因此所有这些关系都将丢失。