2016-02-03 13 views
5

Göçmenleri ezmeye çalıştım.django, Squash geçişleri, çok fazla dairesel bağımlılık

Maalesef, çok fazla dairesel bağımlılık var.

Taşıma işlemlerini ezmeye çalışmaktan ziyade (projem zaten üretimde dağıtılmış olsa da) geçişleri başlatmanın bir yolu var mı?

Özel bir proje olduğu için projemi kullanan bilinmeyen geliştiriciler hakkında endişelenmenize gerek yok.

cevap

10

Evet, bir yolu var. Bakınız this similar question. Bir nusthell:

# 1) Fake migrations back to 0 
./manage.py migrate app zero --fake 

# 2) Delete migrations files 
git rm "app/migrations/*" 

# 3) Create new migration file 
./manage.py makemigrations app 

# 4) Pretend to run the new migration 
./manage.py migrate app --fake 
+0

Dairesel bağımlılıkları çözmek için baştan başlamak daha zor olabileceğini düşündüm. (göç geçmişinize de bağlı olabilir). ama evet bu kesinlikle benim op cevaptır. – eugene

+0

Aslında, dairesel bağımlılıklar olduğunda, yukarıdaki yöntem, dairesel bağımlılıkları otomatik olarak doğru şekilde çözebilecek geçişler oluşturabilir mi? – eugene

+0

Dairesel bağımlılıklar ile ne demek istediğinden emin değilim; Her iki yöne bağlı olan göçleri mi kastediyorsunuz? Varsa, önerilen yöntem tüm göçlerden, dolayısıyla bu türden dairesel bağımlılıklardan da kurtulur. –