как проверить подключение базы данных к mysql в django

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

Я думал, я могу прочитать что-то из базы данных, но это выглядит слишком много, есть что-то вроде?:

settings.DATABASES['default'].check_connection()

2 ответов


все, что вам нужно сделать, это запустить приложение, и если он не подключен, он потерпит неудачу. Иначе можно попробовать на Шелл попробовать следующее -

from django.db import connections
from django.db.utils import OperationalError
db_conn = connections['default']
try:
    c = db_conn.cursor()
except OperationalError:
    connected = False
else:
    connected = True

Я использую следующую команду управления Django под названием wait_for_db:

import time

from django.db import connection
from django.db.utils import OperationalError
from django.core.management.base import BaseCommand


class Command(BaseCommand):
    """Django command that waits for database to be available"""

    def handle(self, *args, **options):
        """Handle the command"""
        self.stdout.write('Waiting for database...')
        db_conn = None
        while not db_conn:
            try:
                connection.ensure_connection()
                db_conn = True
            except OperationalError:
                self.stdout.write('Database unavailable, waiting 1 second...')
                time.sleep(1)

        self.stdout.write(self.style.SUCCESS('Database available!'))