[Solved]-Place to set SQLite PRAGMA option in Django project


Add this code in the __init__.py file of one of your installed app:

from django.db.backends.signals import connection_created
def activate_foreign_keys(sender, connection, **kwargs):
    """Enable integrity constraint with sqlite."""
    if connection.vendor == 'sqlite':
        cursor = connection.cursor()
        cursor.execute('PRAGMA foreign_keys = ON;')



The article suggests that you add that as a middleware (at the very end). That middleware is then configured as a string inside settings.py, so you shouldn’t get any import conflicts.

Leave a comment