как проверить подключение базы данных к 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!'))