Возможно ли в Django иметь отношения между моделями, хранящимися в разных базах данных?

В настоящее время я работаю над проектом, в котором я обрабатываю как публичную, так и частную информацию, хранящуюся в виде различных моделей в общей базе данных.

Я хотел бы разделить эту базу данных на две части, одну с частными объектами модели, а другую с публичными.

Дело в том, что обе эти модели имеют ForeignKey отношения друг с другом, и я нашел противоречивые ответы в интернете о том, могут ли эти отношения работать, даже если модели находятся в двух разных базах данных.

Итак, возможно ли это? Есть ли лучший подход для этого?

Просто чтобы пояснить, почему я хочу сделать это, я хочу, чтобы проект был с открытым исходным кодом, поэтому публичная база данных должна быть публичной, но конфиденциальная информация (пользователи и пароли) должна быть закрытой.

Из Django docs:

Django в настоящее время не предоставляет никакой поддержки для внешних ключей или отношений "многие-ко-многим", охватывающих несколько баз данных. Если вы использовали маршрутизатор для разделения моделей по разным базам данных, любые отношения типа "внешний ключ" и "многие-ко-многим", определенные этими моделями, должны быть внутренними для одной базы данных.

.

Это обусловлено ссылочной целостностью. Для того, чтобы поддерживать отношения между двумя объектами, Django должен знать, что первичный ключ связанного объекта действителен. Если первичный ключ хранится в отдельной базе данных, то невозможно легко оценить его действительность.

Для поиска возможных решений посмотрите это обсуждение: https://stackoverflow.com/a/32078727/14209813

Вернуться на верх