Место для установки опции Sqlite PRAGMA в проекте Django - PullRequest
11 голосов
/ 26 декабря 2010

Согласно этому тесту , установка PRAGMA synchronous = OFF Sqlite может значительно улучшить производительность записи на Sqlite.

Я хорошо знаю о недостатках, но все же хотел бы попробовать это.

В каком месте проекта Django можно установить этот параметр PRAGMA?

Я не могу сделать это из settings.py - по крайней мере, не так, как в статьепредлагает - потому что from django.db import connection вызовет рекурсивную ошибку импорта.

Ответы [ 2 ]

14 голосов
/ 27 июля 2011

Добавьте этот код в файл __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)
0 голосов
/ 07 марта 2011

В статье предлагается добавить это в качестве промежуточного программного обеспечения (в самом конце).Это промежуточное ПО затем настраивается как строка внутри settings.py, поэтому вы не должны получать никаких конфликтов импорта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...