SORU
31 Aralık 2009, PERŞEMBE


güncelleme veritabanı mevcut modeller değişiklikleri yansıtmak için django

Zaten bir model tanımlanmış ettim ve manager.py syncdb) ilişkili veritabanı oluşturuldu. Bu model için bazı alanlar ekledim şimdi syncdb tekrar denedim, ama hiçbir çıkış görünür. Benim şablonlar bu yeni alanlara erişmek için çalışırken üzerine, "Böyle bir Sütun" istisna, bana syncdb aslında veritabanı güncelleme olmadığını düşünmesine. bir olsun Doğru komut nedir?

CEVAP
2 Ocak 2010, CUMARTESİ


Başka bir seçenek, ek uygulamalar gerektirmeyen, manage.py yerleşik işlevler veri aktarmak için kullanılır, veritabanını temizlemek ve verilen verileri geri yüklemek için.

Aşağıdaki yöntemleri uygulamanız için veritabanı tabloları güncelleme olacak, ama olacaktamamen yok etmekbu tablolarda varolan herhangi bir veri. Eğer yapılan değişiklikler için uygulama modeli değil, kırdığınız eski şema (örneğin, eklediğiniz yeni, isteğe bağlı alan) sadece döküm verileri yeniden önce ve sonra, bunun gibi

1.4.15 ve önceki Django

python manage.py dumpdata <your_app> > temp_data.json
python manage.py reset <your_app>
python manage.py loaddata temp_data.json

Django 1.5 ve daha yeni

python manage.py dumpdata <your_app> > temp_data.json
python manage.py sqlclear <your_app> | python manage.py dbshell
python manage.py syncdb
python manage.py loaddata temp_data.json

(reset komutu kaldırılmış ve daha sonra Django 1.5 kaldırıldı)

Eğer yaptığınız değişiklikleri eski şema kırılırsa bu South Django Evolution gibi case araçları harika bir iş olmayacak.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bucky Roberts

    Bucky Robert

    9 HAZİRAN 2011
  • The Onion

    The Onion

    14 Mart 2006
  • Tinkernut

    Tinkernut

    28 Aralık 2006