У меня есть два приложения для django, назовите их Main
на сервере A
и Tasker
на сервере B
. Main
отвечает на запросы пользователей и делает много вещей, которые можно быстро выполнить. С другой стороны, Tasker
имеет только несколько моделей для ведения журналов и сельдерея.Модели приложений Django для разных баз данных
На сервере A
, «tasker» не включен в INSTALLED_APPS
, поскольку он мне не нужен, тогда как на сервере B
, это так.
С django's documentation, я создать маршрутизатор и определен db_for_read
и db_for_write
class ModelsRouter(object):
"""
Logging models are on local,
but updated models are on another server
"""
def db_for_read(self, model, **hints):
if model._meta.app_label == 'tasker':
return 'tasker'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label == 'tasker':
return 'tasker'
return None
На сервере B, DATABASES
установка содержит два ключа:
default
, указывающие на сервер Аtasker
указывая на localhost
У меня есть проблема в том, что, когда я запускаю manage.py migrate
, модели tasker
созданы на сервере A. Как я могу установить проект на сервере B, чтобы быть в курсе следующие: - модели main
приложений находятся на сервере A - модели tasker
находятся на сервере B (также localhost)?