Невозможно выполнить миграцию во второй базе данных Multi в Django
Я реализовал концепцию нескольких БД в моем проекте Django, где для всего проекта я использую БД по умолчанию, а для пользователей я использую отдельную БД
вот конфиги файла settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': default_db,
'USER': env('DB_USER'),
'PASSWORD': env('DB_PASSWORD'),
'HOST': env('DB_HOST'),
'PORT': env('DB_PORT'),
},
'auth_db': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'user_auth_db',
'USER': env('DB_USER'),
'PASSWORD': env('DB_PASSWORD'),
'HOST': env('DB_HOST'),
'PORT': env('DB_PORT'),
},
}
# ADDING ROUTE TO SPECIFY DB ROUTING SPECIFIC user RELATED CHANGES TO REFLECT Into auth_db database not inside default db
DATABASE_ROUTERS = ["main_Project_directory.db_routers.UserAuthRouter"]
Теперь это файл db_routers.py
class UserAuthRouter:
"""
A router to control all database operations on models in the
auth and contenttypes applications.
"""
route_app_labels = {"auth_user", 'contenttypes'} # Apps to be include inside auth_db
def db_for_read(self, model, **hints):
"""
Attempts to read auth and contenttypes models go to auth_db.
"""
if model._meta.app_label in self.route_app_labels:
return "auth_db"
return None
def db_for_write(self, model, **hints):
"""
Attempts to write auth and contenttypes models go to auth_db.
"""
if model._meta.app_label in self.route_app_labels:
return "auth_db"
return None
def allow_relation(self, obj1, obj2, **hints):
"""
Allow relations if a model in the auth or contenttypes apps is
involved.
"""
if (
obj1._meta.app_label in self.route_app_labels
or obj2._meta.app_label in self.route_app_labels
):
return True
# Allow relations if one of the objects is from 'auth_user' and the other is not
if "auth_user" in [obj1._meta.app_label, obj2._meta.app_label]:
return True
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
"""
Make sure the auth and contenttypes apps only appear in the
'auth_db' database.
"""
if app_label in self.route_app_labels:
return db == "auth_db"
return None
Я пытаюсь внести изменения в модель User, которая находится внутри моего приложения auth_user, и при попытке миграции она не отражает изменения в новой БД, но если я выполняю операцию записи, она сохраняет данные в моей новой БД, которая отделена для модели User.
Я хочу перенести изменения в новую БД.