Джанго с несколькими базами данных - PullRequest
0 голосов
/ 26 сентября 2010

У меня есть приложение Django с двумя сконфигурированными базами данных first_DB и second_DB

Конфигурации выглядят следующим образом

DATABASES = {
    'default': {
        'ENGINE'  : 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME'    : 'emonitor',                      # Or path to database file if using sqlite3.
        'USER'    : 'emonitor',                      # Not used with sqlite3.
        'PASSWORD': 'emonitor',                  # Not used with sqlite3.
        'HOST'    : '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT'    : '',                      # Set to empty string for default. Not used with sqlite3.
    },
    'nagios': {
        'ENGINE'  : 'django.db.backends.mysql',
        'NAME'    : 'nagios',
        'USER'    : 'emonitor',
        'PASSWORD': 'emonitor',
        'HOST'    : 'nagios.edc', 
        'PORT'    : '',
    },
}

База данных nagios доступна только для чтения, и это настраивается в модуле маршрутизаторов.

База данных nagios находится на удаленной машине

мое приложение получает данные из базы данных nagios и вставляет их в мою локальную базу данных

Если машина nagios не работает, или mysql на nagiosкомпьютер выключен, сервер django запускается со следующей ошибкой

enter code here_mysql_exceptions.OperationalError: (2005, "Unknown MySQL server host 'nagios.edc' (1)")

, и приложение не работает

Я понимаю, что сервер Django пытается подключиться ко всем настроенным базам данных

но я хочу, чтобы мое приложение работало, даже если вторая база данных недоступна

Как я могу это сделать?

1 Ответ

0 голосов
/ 26 сентября 2010

Если вы не знаете, откуда исходит ошибка 500, установите в своих настройках DEBUG = True и посмотрите на созданную страницу трассировки стека отладки. Он покажет вам, где возникает исключение.

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