14

サイトで使用する 2 つのデータベースがあり、両方を使用するアプリがあります。両方のデータベースのフィクスチャをロードする TestCase を作成する必要があります。私は DB ルーターを使用していますが、これは本番環境では正常に動作しますが、テスト フレームワークでは、Django は、他のデータベースを指定するモデルであっても、すべてのフィクスチャに対して「デフォルト」データベースを使用することを主張します。別のデータベースに対してフィクスチャを実行するように Django に指示するにはどうすればよいですか?

私の TestCase は定義されたリストです:

class VerifierTestCase(TestCase):
    fixtures = ['zipcodes_test.json', 'all_states.json', 'wtf.json']
    multi_db = True
4

2 に答える 2

4

Django には実際にバグがあり、フィクスチャ名全体を指定すると、名前ベースの db 固有のポインタが無視されます。

あなたがそうするならfixtures = ["mydata.default.yaml", "mydata.myotherdatabase.yaml"]

両方のフィクスチャをデフォルト データベースにロードします。

しかし、もしそうならfixtures = ['mydata']

正しく読み込まれます。これは、dbengine 固有のファイル名 (例: ) にも当てはまりますmydata.default.postgresql.sql

于 2011-11-30T19:33:52.343 に答える