2011-02-10 18 views
5

Birlikte aynı sorun yaşıyorum var: --fake bana gerekli bazı sorunlar var mıydı schemamigration/göç (ince çalıştı django - "manage.py test" fails "table already exists"Güney Django tablo zaten

ancak güney çalışma ile sonraki tüm göçler).

(1050, "Table '{tablename}' already exists") 

Ben bu yuvarlak alabilirim nasıl olduğunu merak ediyorum ve bunun neden böyle: Ben bir birim test çalıştırdığınızda Ama olsun. Yukarıda bahsi geçen soruda verilen tek cevap, güneyin birim testlerden hariç tutulabilmesiydi, eğer bunu yaparsam, güney tarafından yönetilen tablolarla birim testi yapamayacağım anlamına mı geliyor? çok takdir

açıklamalar :)

Adam

cevap

8

Hayır, öyle demek değildir. Django, şimdi sıfırdan oluşturuyorsanız, tablolarınızın nasıl görünmesi gerektiğini zaten biliyoruz - sadece model tanımlarını kullanır. South, yararlıdır çünkü modellerinizi değiştirdiğinizde tablo yapınızı kolayca değiştirmenize izin verir, ancak testler çalıştırırken bunu umursamazsınız: sadece testlerin tabloların mevcut sürümlerinde çalışmasını istiyorsunuz.

Evet, test çalıştırırken Güney'i SOUTH_TESTS_MIGRATE = False aracılığıyla devre dışı bırakın ve Django sizin için tabloları otomatik olarak oluşturacaktır.

+0

Başka bir django kavramını (php'den geçiyorum) eğlendim. – null