Возможно ли в Django иметь отношения между моделями, хранящимися в разных базах данных?
В настоящее время я работаю над проектом, в котором я обрабатываю как публичную, так и частную информацию, хранящуюся в виде различных моделей в общей базе данных.
Я хотел бы разделить эту базу данных на две части, одну с частными объектами модели, а другую с публичными.
Дело в том, что обе эти модели имеют ForeignKey отношения друг с другом, и я нашел противоречивые ответы в интернете о том, могут ли эти отношения работать, даже если модели находятся в двух разных базах данных.
Итак, возможно ли это? Есть ли лучший подход для этого?
Просто чтобы пояснить, почему я хочу сделать это, я хочу, чтобы проект был с открытым исходным кодом, поэтому публичная база данных должна быть публичной, но конфиденциальная информация (пользователи и пароли) должна быть закрытой.
Из Django docs:
Django в настоящее время не предоставляет никакой поддержки для внешних ключей или отношений "многие-ко-многим", охватывающих несколько баз данных. Если вы использовали маршрутизатор для разделения моделей по разным базам данных, любые отношения типа "внешний ключ" и "многие-ко-многим", определенные этими моделями, должны быть внутренними для одной базы данных.
.Это обусловлено ссылочной целостностью. Для того, чтобы поддерживать отношения между двумя объектами, Django должен знать, что первичный ключ связанного объекта действителен. Если первичный ключ хранится в отдельной базе данных, то невозможно легко оценить его действительность.
Для поиска возможных решений посмотрите это обсуждение: https://stackoverflow.com/a/32078727/14209813