2010-11-03 37 views
11

我有兩個數據庫,我的網站使用,我有一個使用它們的應用程序。我需要編寫一個加載兩個數據庫的Fixture的TestCase。我使用的DB路由器在生產環境中工作良好,但在測試框架中,Django堅持使用所有燈具的「默認」數據庫,即使是指定其他數據庫的模型。我如何讓Django對另一個數據庫運行夾具?django - 爲TestCase燈具指定數據庫

我的TestCase定義列表:

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

有沒有人找到答案呢?無法將燈具加載到'默認' – zenWeasel 2011-07-14 18:56:04

+0

有沒有人找到答案? – 2013-10-10 15:35:55

回答

4

實際上有在Django導致如果指定了整個燈具的名稱它忽略了基於域名的特定DB-指針的錯誤。

所以如果你做fixtures = ["mydata.default.yaml", "mydata.myotherdatabase.yaml"]

它都將夾具加載到默認的數據庫。

但是,如果你fixtures = ['mydata']

這將正確加載。對於dbengine特定的文件名也是如此(例如mydata.default.postgresql.sql)。

+0

不幸的是,Django 1.6並非如此。當我嘗試這樣做時,我收到一個錯誤,指出UserWarning:找不到名爲'migration_test_data'的燈具'。 – CoreDumpError 2014-08-13 00:33:13

+0

@CoreDumpError,我也得到了警告,但是,燈具加載正確。我認爲警告是一種錯誤。我發出了一張有關它的票:https://code.djangoproject.com/ticket/24680#ticket – ZZY 2015-04-21 11:23:47