DjangoプロジェクトをテストするときDATABASE_OPTIONSを適用する(あるいは、それはMySQL用のInnoDBを使用するようにしてください)

StackOverflow https://stackoverflow.com/questions/1066990

質問

タイトルが言うように、私は私が./manage.py test経由で私のテストを実行したときにDATABASE_OPTIONS設定を適用します。 django/db/backends/creation.pyでは、それはcreate_test_db()_create_test_db()の両方ですべてでこのオプションを考慮していない。

これは、InnoDBのでtransaction.rollback機能を使用するビューでテストを壊します。これは、テストデータベースはInnoDBストレージエンジンを使用して作成されていないと思われます。

任意の回避策はありますか。この問題に解決する?

役に立ちましたか?

解決 2

私は自分で理由を見つけました。私は、通常のTestCase基底クラスの代わりにTransactionTestCaseを使用する必要があります。 マニュアルを参照してください。こちら

他のヒント

回避策の一つは、InnoDBのようにサーバー上のデフォルトのストレージエンジンを設定することがあるかもしれません。

のmy.cnfでます:

set default_storage_engine=InnoDB

Djangoは明示的にMyISAMテーブルを選んされていない限り、それは動作するはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top