Мне нужно использовать несколько баз данных для моего проекта django. Приложение отлично работает, когда есть только одна база данных:
В настройках.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': 3306,
},
Но если бы я добавил больше баз данных из того же движка:
DATABASES = {
'default':{},
'mydb1': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb1',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': 3306,
},
'mydb2': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb2',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': 3306,
}
}
это дает мне следующую ошибку:
ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
Кроме того, я пробовал:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb1',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': 3306,
},
'mydb2': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb2',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': 3306,
}
}
Он видит только mydb1, а не mydb2, когда я попытался запросить mydb2, он дает мне:
DoesNotExist: Site matching query does not exist.
Нужно ли определять маршрут базы данных? кажется, мне нужно сделать это только для индивидуального чтения/записи.
Спасибо
ОБНОВИТЬ:
В документах django говорится, что схема маршрутизации по умолчанию гарантирует, что, если база данных не указана, все запросы возвращаются к базе данных по умолчанию.
Итак, я думаю, мой фактический вопрос заключается в том, как мне указать базу данных для использования в моих запросах?