2016-06-28 4 views
1

Ich schreibe eine schnelle kleine Testansicht, dass ich alle paar Minuten GET überprüfen kann, dass meine Anwendung und Datenbankserver online und funktionsfähig sind.Minimaltest der Datenbankkonnektivität in Django

from django.http import HttpResponse, HttpResponseServerError 
from my_app.models import Model 

def test(request): 
    ''' 
    Returns a HttpResponse to prove the application/db servers work 
    ''' 
    if request.method == "GET": 
     #test database access 
     count = Model.objects.values_list('id', flat=True).count() 
     if count: 
      return HttpResponse("OK") 

    return HttpResponseServerError("Error") 

Gibt es eine minimale integrierte Datenbank-Abfrage, die ich, dass der DB-Server zu testen tun könnte funktioniert und takling zum App-Server, ohne einen gefälschten zu tun zu haben, wie ich oben tat?

Antwort

3

Sie django Verbindungen importieren und überprüfen Sie mit Ihrem Datenbanken:

from django.db import connections 
try: 
    cursor = connections['default'].cursor() 
except OperationalError: 
    return HttpResponseServerError("Error") 
else: 
    return HttpResponse("OK") 
return HttpResponseServerError("Error") 

Documentation here

+1

Dank, fügte ich die Ausnahmebehandlung für den Fall, copy-paste jemand versucht, und merkt nicht, '.Cursor() 'wird einen Fehler werfen, der behandelt werden muss. – Escher

Verwandte Themen