我需要在现有的django model / 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
的最后部分是什么意思?
谢谢,
马丁
答案 0 :(得分:1)
这将使PostgreSQL理解并强制执行另一个表的外键,并保证myapp_table.newcolumn中不会有任何在myapp_theothertable.id中找不到的内容
实际上,即使没有这种约束,你的django应用程序也能正常工作。但是,最好有一个,如果你之后做了dumpdata - loaddata -cycle,它将被创建。