SORU
12 Mayıs 2009, Salı


Django bir Fikstür yüklerken contenttypes ile ilgili sorunlar

Contenttypes çatışmalar nedeniyle sorun MySQL veritabanına Django armatürleri yükleme yaşıyorum. İlk veri damping böyle uygulamamı sadece denedim:

./manage.py dumpdata escola > fixture.json

ama benim app "" kullanan diğer uygulamalardan tablolar. escola çünkü eksik yabancı anahtar sorunları almaya devam ettim, Bu noktaya gelene kadar ek uygulamalar ekleyerek devam ettim:

./manage.py dumpdata contenttypes auth escola > fixture.json

Şimdi sorun test Fikstür olarak veri yüklemeye çalıştığımda aşağıdaki kısıtlaması ihlali

IntegrityError: (1062, "Duplicate entry 'escola-t23aluno' for key 2")

Sorun Django Fikstür birincil anahtar değerleri ile çakışan farklı birincil anahtar değerleri ile contenttypes dinamik olarak yeniden yaratmaya çalışıyor gibi görünüyor. Bu hata, belirtildiği gibi aynı görünüyor burada: http://code.djangoproject.com/ticket/7052

Sorun önerilen çözüm olan uygulama zaten yapıyorum contenttypes terk etmektir. Ne veriyor? Eğer bir önemi varsa burada belirtildiği gibi bazı özel model izinleri var: http://docs.djangoproject.com/en/dev/ref/models/options/#permissions

CEVAP
2 Kasım 2010, Salı


manage.py dumpdata --natural yabancı anahtarlar daha dayanıklı bir gösterimini kullanır. Django adında "doğal anahtarları". Örneğin:

  • Permission.codename Permission.id lehine kullanılır
  • User.username User.id lehine kullanılır

Daha fazla okuma: natural keys section in "serializing django objects"

dumpdata için başka yararlı bağımsız değişkenler:

  • --indent=4 insan okunabilir hale getirmek.
  • -e sessions oturum verileri hariç
  • -e admin admin site admin eylemlerin geçmişi hariç
  • -e contenttypes -e auth.Permission şemadan otomatik olarak syncdb sırasında her zaman yeniden nesneler hariç. Sadece --natural ile birlikte veya başka kötü hizalanmış kimlik numaraları ile karşılaşabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • Diogo Oliveira

    Diogo Olivei

    4 HAZİRAN 2006
  • Kamikazeepanda

    Kamikazeepan

    5 ŞUBAT 2006