Kısa süre önce modelimi güncelledim, ona bir BooleanField ekledim ancak yaptığımda model python manage.py syncdb
için yeni alanı veritabanına eklemiyor . Bunu nasıl düzeltebilirim?
Kısa süre önce modelimi güncelledim, ona bir BooleanField ekledim ancak yaptığımda model python manage.py syncdb
için yeni alanı veritabanına eklemiyor . Bunu nasıl düzeltebilirim?
Yanıtlar:
Django şu anda bunu otomatik olarak yapmıyor. Seçenekleriniz:
python manage.py sql (appname)
, alan için eklenen satırı bulun ve alter table
SQL komutunu kullanarak manuel olarak ekleyin . (Bu aynı zamanda mevcut kayıtlarınız için alan değerlerini seçmenize de izin verecektir.)Bu adımları takip et:
En iyi yanıtta önerildiği gibi, Güney'i kullanmayı denedim ve belirsiz geçiş hatalarından kaynaklanan bir saatlik hayal kırıklığından sonra bunun yerine Django Evolution ile gitmeye karar verdim .
Sanırım başlamak Güney'e göre daha kolay ve ilk yazdığımda mükemmel çalıştı ./manage.py evolve --hint --execute
, bu yüzden bundan memnunum.
Havent bir süre django kullandı, ancak syncdb'nin db tablolarında komutları değiştirdiğini hatırlıyorum. Tabloyu bırakmanız ve ardından tekrar çalıştırmanız gerekir ve yeniden oluşturulur.
edit: üzgünüm değişiklik YAPMAZ.
alter table
komutları çalıştırmıyor, create table
komutları çalıştırıyor .
Django 1.6'da
İlk başta koştuk - python manage.py sql <app name>
O zaman koşmalıyız - python manage.py syncdb
Django'yu Apache ve MySQL ile çalıştırırsanız, makemigrations ile geçiş yaptıktan sonra apache'yi yeniden başlatın .