Как сделать SQL запрос в Джанго?
Мне необходимо выполнить запрос вида
DELETE FROM django_migrations WHERE app='название_приложения';
для очистки от миграций таблицы django_migrations. Но как это сделать в Django?
Пользуюсь самописной функцией во всех своих проектах:
def sql (req, returnid = False):
import sqlite3 as sqlite
connection = sqlite.connect('db.sqlite3') # Название БД рядом с файликом manage.py
cursor = connection.cursor()
cursor.execute (str (req))
connection.commit()
if returnid == False:
rows = cursor.fetchall ()
else:
rows = cursor.lastrowid
cursor.close()
connection.close()
return rows
Вызывается просто:
sql ("DELETE FROM django_migrations WHERE app='название_приложения'")
Первый аргументом передаете сам SQL-запрос и если есть что вернуть, то функция вернет (для SELECT, например). Вторым аргументом можно передать значение True и тогда функция вернет id новой записи (для INSERT).