Django veritabanı migrate işleminde kolon oluşturulmaması

Herkese iyi akşamlar arkadaşlar, yine ilginç bir hata ile karşı karşıyayım.
Windows üzerinde yürüttüğüm projemi belli bir noktaya ulaştığı için apache üstünde koşturmaya karar verdim ve envai çeşit sorunla karşı karşıya kaldım büyük oranda hepsini çözdüm ancak şimdi karşılaştığım sorunla ilgili hiç bir ipucu dahi bulamadım. Öncelikle değişiklikleri görebilmeniz açısından eskiden yapı nasıldı şuan nasıl bilgilerini paylaşayım.

Windows üzerinde virtualenv olmadan normal djangonun kendi sunucusunu kullanarak ilerliyordum. Şimdi işletim sistemi olarak pardus’e geçtim proje için bir virtualenv oluşturdum ve apache mod_wsgi ayarlarını yapılandırdım(kaynak olarak https://do.co/2Sph15O bu linkten ilerledim). Herşey yolunda proje aynen çalışıyor ancak yeni bir model ekleyip migrate ettiğim zaman tablo adı oluşuyor sql sorgusu sqlitebrowser ile baktığımda görünüyor ama kolonlar oluşmuyor. Yetkilerden olabileceğini düşünerek tam yetki verdim, sadece bir modelde mi yoksa tüm modellerde mi yapıp yapmadığını görmek için yeni db create ettim tahmin ettiğim gibi tüm tablolar oluştu ama hiçbirinin kolonları oluşmadı.

Benzer bir sorunu ilk python öğrendiğim sıralar yaşamıştım o zaman hatırladığım kadarıyla sql’e giden syntax’i yanlış gönderdiğim için yapıyordu tırnakları falan düzenltince oluyordu. Bu defa hepsini django ile yaptığım için ondan olabilir mi emin değilim.

Umarım konuyu yeterince iyi izah edebilmişimdir. Yardımcı olabilecek birileri çıkarsa çok memnun olurum, herkese iyi çalışmalar.

eski db yi taşıdaysınız
migration ların loglarını tuttuğu bir tablo vardı oradan silmeniz gerekebilir.
migration altındaki dosyaları silmek yeterli olmayabilir.
zaten var diye eklemiyordur

1 Beğeni

Burada eksik bahsetmişim, aslında sıfırdan bir proje dahi create ettiğimde durum aynı. Dolayısıyla sizin bahsettiğiniz loglardan olduğunu düşünmüyorum ama denemekte fayda olabilir.

bir ihtimalde app lerin altındaki migration folderlarınndaki dosyaları silin.
orada son migrations lar tutuluyor.

1 Beğeni

Bunlar silinirse migration’lar kaybedilmez mi? Oysa yeni bir ortamda veritabanını baştan oluşturmak için migration’lara ihtiyaç var.

1 Beğeni

tekrar migrations çalıştırıldığında model in son halinden yeninden migrationsları oluşturup
alıyor ve ona göre migrate ediyor zaten.
tablonun (model) history si kaybolur o da çok lazımsa bir yere kopyalanabilir.

1 Beğeni

Arkadaşlar ilginiz için teşekkürler sorunu çözdüm(tabi buna çözmek denirse :slightly_smiling_face:) windows ortamında modelleri oluşturup migrate ettikten sonra sqlitebrowser ile bakıp sorguyu, tablo ismi, kolon isimlerini ve ilişkileri falan inceliyordum. Ancak linux ortamında sqlitebrowser tabloya veri yazmadan kolon isimlerini göstermiyor(en azından parduste durum bu). Tekrardan teşekkür ederim herkese, iyi çalışmalar.

enterasanmış olmayan bir kolona veri atmak isteyince napacaktı acaba demek ki bir yerde tutuyor kolon bilgisini aslında veya o esnada gidip migrationstan okuyor.bu kadar ilişliki olabilir mi sqlite django ile
enteresan

Sqlite browser üstünden yeni kayıt butonuna tıkladığımda no such column gibi bir hata alıyordum ki zaten o kafa karıştırıcı oldu. Bir ilişki olduğunu sanmıyorum sqlitebrowser veya pardus kaynaklı bir sorun gibi daha çok. Anlayan arkadaşlar aydınlatırsa iyi olur aslında.