我需要将外键字段添加到现有的 Django 模型/postgres 表中。根据 django 文档,我运行了“sqlall myapp”命令来“找出差异”。
明显的区别是,有问题的表现在有一个带有新约束的额外列,如下所示:
ALTER TABLE "myapp_mytable" ADD CONSTRAINT newcolumn_id_refs_id_4bfb2ece
FOREIGN KEY ("newcolumn_id") REFERENCES "myapp_theothertable" ("id")
DEFERRABLE INITIALLY DEFERRED;
在弄乱我的数据库之前,我想了解该语句,特别是 newcolumn_id_refs_id_4bfb2ece
的最后一部分指的是什么?
谢谢,
马丁
最佳答案
这将使 PostgreSQL 理解并将您的外键强制执行到另一个表,并保证 myapp_table.newcolumn 中不会有任何在 myapp_theothertable.id 中找不到的内容
实际上,即使没有该限制,您的 Django 应用程序也能正常工作。但是,最好准备一个,如果您之后执行 dumpdata - loaddata -cycle,它将被创建。
关于postgresql - Django : manually adding a foreign key column (newcolumn_id_refs_id_4bfb2ece ? ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1405206/