2017-02-01 11 views
0

Вот что у меня есть:Как закрыть курсор базы данных django 1.8 и соединение?

from django.db import connection 

class Command(BaseCommand): 

option_list = BaseCommand.option_list 

def handle(self, *labels, **options): 
    with connection.cursor() as cursor: 
     # Drop database 
     cursor.execute("drop database if exists test_db;") 
     # Create database again 
     cursor.execute("create database test_db;") 

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

ответ

0

Найдено решение.

Я закрываю соединение из блока «с» с connection.close() , и это решает его.

Спасибо

0

Мое предложение - попытаться создать и закрыть курсор в каждом методе, где требуется запрос.

cursor = connection.cursor() 
cursor.execute(query) 
cursor.close() 

Так что ваша функция должна выглядеть следующим образом:

def handle(self, *labels, **options): 
    with connection.cursor() as cursor: 
     # Drop database 
     cursor.execute("drop database if exists test_db;") 
     # Create database again 
     cursor.execute("create database test_db;") 
     #Close the cursor 
     cursor.close() 
+0

Это закрывалась курсор ... Я хочу, чтобы иметь возможность закрыть соединения с базой данных тоже ... Как я явно сделать это? – Becks

+0

«курсор» автоматически закрывается при выходе из блока 'with' (даже при исключении) –