Django не смог обнаружить вновь добавленную базу данных после добавления маршрутизатора
У меня есть три базы данных, из которых одна установлена по умолчанию.
Я уже создал маршрутизатор для базы данных ringi и он прекрасно работает. Теперь я хочу добавить еще одну базу данных и после создания нового маршрутизатора для базы данных под названием cms, он не работает.
Итак, мой проект называется wshp и один из маршрутизаторов для базы данных ringi, я поместил его в ту же папку, что и settings.py. Я создал другое приложение под названием mypage и создал маршрутизатор для cms, имя маршрутизатора - cmsrouter.
settings.py
DATABASE_ROUTERS = ['wshp.router.myrouter','app_mypage.cms_router.cmsrouter']
DATABASE_APPS_MAPPING = {
'ringi':'ringi_db',
'cms':'cms_db'
}
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mypage',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
},
'ringi_db':{
'ENGINE': 'django.db.backends.mysql',
'NAME': 'ringi',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
},
'cms_db':{
'ENGINE': 'django.db.backends.mysql',
'NAME': 'cms',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
}
}
cms_router.py
class cmsrouter:
def db_for_read(self, model, **hints):
if model._meta.app_label == 'cms':
return 'cms_db'
else:
return None
def db_for_write(self, model, **hints):
if model._meta.app_label == 'cms':
return 'cms_db'
else:
return None
def allow_relation(self, obj1, obj2, **hints):
if obj1._meta.app_label == 'cms' or \
obj2._meta.app_label == 'cms':
return True
else:
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
if app_label == 'cms':
return db == 'cms_db'
else:
return None
Я добавил модели для базы данных cms и после запуска миграции для приложения mypage обнаружил, что изменений не обнаружено. Если я добавляю модели для любой другой базы данных, то они обнаруживаются, но не для cms.
Я не могу найти ничего плохого в маршрутизаторе. Пожалуйста, помогите.