django: добавление столбца внешнего ключа вручную (newcolumn_id_refs_id_4bfb2ece?) - PullRequest
1 голос
/ 10 сентября 2009

Мне нужно добавить поле внешнего ключа в существующую модель 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?

Спасибо

Martin

1 Ответ

1 голос
/ 10 сентября 2009

Это позволит PostgreSQL понять и применить ваш внешний ключ к другой таблице и гарантировать, что в myapp_table.newcolumn не будет ничего такого, чего нельзя найти в myapp_theothertable.id

На самом деле ваше приложение django будет отлично работать даже без этого ограничения. Тем не менее, это хорошая идея, чтобы иметь его на месте, и если вы впоследствии сделаете dumpdata - loaddata -cycle, он будет создан.

...