Как я могу использовать одну базу данных с несколькими серверами django? - PullRequest
1 голос
/ 27 сентября 2019

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

Использование микро-сервисных архитектур, если я определяю базу данных и моделина сервере django с именем Account, как я могу использовать базу данных и модели на сервере учетных записей с другого сервера, такого как Post ??

Я думаю написать одинаковые models.py на обоих серверах и использоватькоманды django --fake

Затем введите эти команды

python manage.py makemigrations

python manage.py migrate

и на другом сервере

python manage.py makemigrations

python manage.py migrate --fake

Я не уверен, сработает ли это, и мне интересно, есть ли хорошие способы.

Ответы [ 2 ]

2 голосов
/ 27 сентября 2019

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

Тем не менее, это звучит как беспорядок, чтобы продолжать идти вперед.Я думаю, что я хотел бы создать отдельный проект Django, который взаимодействует с базой данных, а затем создать API в этом первом проекте, с которым могут взаимодействовать все другие приложения для взаимодействия с базой данных.Таким образом вы избежите дублирования кода и не будете беспокоиться о синхронизации нескольких проектов.

1 голос
/ 27 сентября 2019

В моем проекте есть тот же случай, что у меня есть 2 сервера Django и 1 база данных.

Я сделал это, чтобы запустить на сервере 1

python manage.py makemigrations

и

python manage.py migrate

и на сервере 2 я просто запускаю:

python manage.py makemigrations

Я не запускал команды переноса на сервере 2

Теперь, если есть какие-либо изменения в модели, я запускаю makemigrations команда на обоих серверах и migrate команда на любом сервере.Я использую только одну базу данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...