在Django项目中设置Sqlite PRAGMA选项的位置

Tom*_*rle 11 sqlite django

根据此测试,设置PRAGMA synchronous = OFF Sqlite可以显着提高Sqlite写入性能.

我很清楚这些缺点,但还是想尝试一下.

Django项目中设置此PRAGMA选项的最佳位置是什么?

我无法从settings.py中做到 - 至少不是文章建议的方式 - 因为from django.db import connection会导致递归导入错误.

Thi*_*t J 14

将此代码添加__init__.py到您已安装的应用程序的文件中:

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;')

connection_created.connect(activate_foreign_keys)
Run Code Online (Sandbox Code Playgroud)