0

Yani (taze göç varolan db veri kırdı null değer hata veriyor) ister.Django ORM/SQL sorunlarını nasıl ayıklarim? ama şimdi olur - Aslında bu alanı kullanarak oldum değil <code>permalink = models.IntegerField(default=0)</code></p> <p>: Ben böyle bir alana sahip bir modele sahip biraz daha ayrıntılı olarak,

Ancak, bu tablodaki tüm modeller görünüyor, permalink artık 57295730 - tüm 2000 modellerde! Hata ayıklamak için bir girişim

, ben tamamen migrate (~ 100 göçler) çalıştıran, DB silme çalıştı - Kesinlikle bir değer geçirerek olmama rağmen modelin bir örneğini oluşturarak daha sonra ama ben permalink violates the not-null constraint söylendi! Ayrıca, ilettiğim değerlerin bir listesini aldım, ancak hangi değerin hangi alana ait olduğunu bilmiyorum. ... ve hala olsun boş ihlali

bu alan ilk geçişten beri dokunulmaz değildir gibi

da garip, görünüşe -

Hatta yeni makemigrations çalışan, göçler kaldırarak, DB çıkarmadan denedim! I (k) ubuntu 14.04, postgres 9.3, piton 3.4, django 1.9.4

Bunu düzeltmek için nasıl bilmek isteriz olsa koşuyorum

migrations$ egrep permalink * 0001_initial.py: ('permalink', models.IntegerField(default=0)), migrations$

- Sorumu ne can" gerçekten Bu tür bir durumun hatalarını ayırım mı? "

+0

- permalink' yönetici değişti diyor 'değerini düzenleyemezsiniz, ancak değişmeden kalır ** yazma testleri, onları çalıştırmak. Diğer tüm veriler _looks_ OK ve _seems_ OK de düzenlemek için. – Chozabu

cevap

0

Eh değil istediğim cevap - ama bir çalışma cevap:

  1. otomatik test
  2. kullanım CI yap! ilk etapta bu sorunu önlemek

Ve (sen cant veya elle sorunu bulmaya git reset --hard HEAD~1 kullanın!)

mycase yukarıdaki ... kullanımını git bisect yapıyor değilse, ben modelin kaydetme işlevini ... aptalca bir şekilde aşmaktaydı!

düzenleme: - Ben bu hatayı fark etmedi, ama daha önceki bir taahhüt de, Ancak + 1

çıkardığını biraz daha ayrıntılı olarak , ben permalink batıyordu şimdiki büyük değerden 1 büyük olması DB'deki verilerde olduğu gibi hızlı bir şekilde.

So! hata aslında oldukça bilgilendirici oldu - testlerimi daha sık çalıştırıyordum (veya CI kullanıyordum) hatadan anında haberdar olurdum ve kendimi oldukça başım ağrıyordu!

yüzden, kısacası: - otomatik Ayrıca **

İlgili konular