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
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.
Nasıl bir SQL Server 2005 veritabanı i...
Doğrulama Sunucu Veritabanı Varlık Çer...
Git - değişiklikleri kopyalamak için n...
Nasıl django'bellek sadece test v...
Veritabanı yapısı değişiklikleri için ...