代码之家  ›  专栏  ›  技术社区  ›  Hoff

Django:手动添加外键列(NewColumn_id_refs_id_4bfb2ece?)

  •  1
  • Hoff  · 技术社区  · 17 年前

    我需要在现有的django model/postgres表中添加一个外键字段。根据Django文档,我运行了“sqall 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 是指?

    谢谢,

    马丁

    1 回复  |  直到 16 年前
        1
  •  1
  •   af.    17 年前

    它将使PostgreSQL理解并强制执行另一个表的外键,并保证myapp_table.newcolumn中没有myapp_the other table.id中找不到的任何内容。

    实际上,你的django应用程序即使没有这个限制也能正常工作。但是,最好有一个合适的位置,如果您随后执行dumpdata-loaddata-cycle,它将被创建。

    推荐文章