2016-06-28 11 views
1

私はアプリケーションサーバとデータベースサーバがオンラインで機能していることを確認するために、数分おきにGETという小さなテストビューを書いています。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") 

私は上記のようにやった偽のいずれかを実行することなく、DBサーバが動作し、アプリケーションサーバーにtaklingされていることをテストするために行うことができ、より最小限の作り付けのデータベースクエリはありますか?

答えて

3

あなたはDjangoの接続をインポートし、データベースで確認することができます。

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

おかげで、私は)(誰でもコピー&ペーストをしようとすると '.CURSORを実現していない場合には例外処理を追加しました'は処理する必要があるエラーをスローします。 – Escher

関連する問題