私のdjangoプロジェクトでは、本番用にはmysql dbを使用し、テスト用にはsqliteを使用します。djangoのsqliteで整合性チェックを有効にする
問題は、コードの一部がモデルの整合性チェックに依存していることです。これはmysqlとうまく動作しますが、同じコードがテストで実行されたときには完全性エラーはスローされません。
私がチェックした外部キーがsqliteので活性化されなければならないことを知っている:
PRAGMA foreign_keys = 1;
この活性化(same question here)を行うための最善の方法である場合しかし、私は知りません。
また、次のコードは動作しません。
def test_method(self):
from django.db import connection
cursor = connection.cursor()
cursor.execute('PRAGMA foreign_keys = ON')
c = cursor.execute('PRAGMA foreign_keys')
print c.fetchone()
>>> (0,)
任意のアイデア?
なぜあなたは、生産に使用されているテストのための同じDBを使用していませんか?テスト環境の目的は生産環境を再現することではありませんか?* –
'time python manage.py test products'を使用して単一のアプリケーションをテストします。 Mysql:0m58.232s。 Sqlite:0m5.153s。 –
ここでは解決策がひとつ始まったわけではありませんが、あなたがここで上げようとしている問題についてこのチケットで多くの議論が行われているように見えます。https://code.djangoproject.com/ticket/11665 – NiKo