根据this test,设置PRAGMA synchronous = OFF Sqlite可以显着提高Sqlite写入性能。
我很清楚这些缺点,但还是想尝试一下。
Django项目中设置此PRAGMA选项的最佳位置是什么?
我无法通过settings.py执行此操作 - 至少不是文章建议的方式 - 因为from django.db import connection
会导致递归导入错误。
答案 0 :(得分: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)
答案 1 :(得分:0)
文章建议您将其添加为中间件(最后)。然后将该中间件配置为settings.py中的字符串,这样就不会出现任何导入冲突。