postgresql - Django : manually adding a foreign key column (newcolumn_id_refs_id_4bfb2ece ? )

标签 postgresql django-models foreign-keys

我需要将外键字段添加到现有的 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/

相关文章:

java - 如何在JPA Spring Boot中的嵌套对象中通过Temporal.TIMESTAMP进行查询?

python - 嵌套链与重复信息

django 手动将模型字段添加到 postgres 数据库

sqlite - SQLite3-BLOB上的外键不匹配

python - 使用 sqlalchemy 时出现溢出错误

python - 如何在 Python 中将匹配对聚合到 "connected components"

postgresql - 如何让 pg_dump 在 Postgres 9.5 中生成 upsert 语句

Django EmbeddedModelField 在执行 PUT 请求时说 "This field may not be blank",尽管字段具有 "blank=True"

java - 是否可以在没有对象到对象映射的情况下强制执行外键?

mysql - Rails foreign_key 必须是整数吗?