джанго:добавление столбца внешнего ключа вручную (newcolumn_id_refs_id_4bfb2ece ?)

StackOverflow https://stackoverflow.com/questions/1405206

Вопрос

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

Спасибо,

Мартин

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top