джанго:добавление столбца внешнего ключа вручную (newcolumn_id_refs_id_4bfb2ece ?)
-
05-07-2019 - |
Вопрос
Мне нужно добавить поле внешнего ключа в существующую таблицу 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, он будет создан.