Используйте несколько баз данных в Django только с одной таблицей "django_migrations" - PullRequest
10 голосов
/ 29 октября 2019

Для проекта в Джанго я должен использовать две базы данных: по умолчанию и удаленный . Я создал routers.py и все работает нормально.

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

Соответствующая часть routers.py находится здесь:

class MyRouter(object):
     # ...
     def allow_migrate(self, db, app_label, model_name=None, **hints):
         if app_label == 'my_app':
             return db == 'remote'
         return None

Я запускаю миграцию так:

python manage.py migrate my_app --database=remote

Теперь, когда я это сделаю:

python manage.py runserver

, я получаю следующее предупреждение:

У вас есть 1 не примененная миграция (и). Ваш проект может работать некорректно, пока вы не примените миграции для приложений: my_app.
Запустите 'python manage.py migrate', чтобы применить их.

Таблицы для my_appсозданные в базе данных remote, а в django_migrations внутри базы данных remote миграции помечены как примененные.

EDIT:
Как заставить Django использовать только одну таблицу django_migrations, но все же применить миграции в разные базы данных?

Как применить миграции в разные базы данных, чтобы не выдавались предупреждения?

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