2011-08-29 14 views
15

South/Django kullanarak, veritabanında varolan satırların bulunduğu bir model için UNIQUE ve NOT NULL sütun eklemeye çalıştığım bir sorunla karşılaşıyorum . South, NOT NULL olduğu için sütun için bir varsayılan belirtmemi ister. Ama aynı zamanda bir UNIQUE kısıtlamasına sahip olduğu için, models.py alanındaki alana bir varsayılan ekleyemem, ya da bir satırlık değer belirleyemem çünkü tüm satırlarda aynı olacak.Güney: Eşsiz ve null olmayan bir sütun için bir geçişi çalıştırma

Bunun üstesinden gelmek için düşünebilmemin tek yolu önce boş bir sütun oluşturmak, geçişi uygulamak, varolan satırları o sütunda benzersiz değerlerle doldurmak için bir komut dosyası çalıştırmak ve ardından başka bir geçiş eklemek Bu sütuna UNIQUE kısıtlaması.

Aynı şeyi başarmanın daha iyi bir yolu var mı?

cevap

13

Evet, almanız gereken yaklaşım budur. Bunun için şemamigration -> datamigration -> schemamigration yapmalısınız. Maalesef SQL'de bunu yapmanın bir yolu yoksa, güneyde bunu yapamaz.

İlgili konular