Uygulamanızda çokça migration
dosyası olabilir, bu konuda korkmanıza veya gerilmenize gerek yok hiç bir sıkıntı çıkmaksızın kullanmaya devam edebilirsiniz. Testlerinizi çalıştırırken sadece süreyi uzatacaktır. ci/cd süreçlerinde bunu biraz iyileştirmek isterseniz kullanabilirsiniz ancak bence gerek yok.
Git kullanıyorsanız bu işlemi yaparken öyle fazla korkmanıza da gerek yok, sadece Migration ve gerekli dosyaları kaldıracağız sonrasında ise sıfırlayıp temiz bir sayfa açacağız.
Dosyaları kaldıralım hızlıca
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
PythonSonrasında gidip veri tabanından kayıtlarını da sileceğiz, veri tabanı üzerinde bir oturum açmayın direk uygulama üzerinden python manage.py shell
komutunu girerek bir python kabuk oturumu başlatın. ve aşağıdaki komutu çalıştırın.
from django.db.migrations.recorder import MigrationRecorder
MigrationRecorder.Migration.objects.all().delete()
PythonŞimdi her şey tamamlandığına göre temiz bir sayfa için migration oluşturma komutunu verelim.
python manage.py makemigrations
ShellScriptŞimdi oluşturduğunuz bu dosyalar üzerinde tekrar migrate işlemi yaparsanız hoş olmaz çünkü zaten bu değişiklikler veritabanında yer alıyor. O sebeple --fake
komutu ile geçmiş gibi yapmamız gerekiyor ki temiz bir sayfa açmış olalım.
python manage.py migrate --fake-initial
ShellScriptEvet başarılı bir şekilde işlemimizi tamamladık, çok ama çok gerekmedikçe asla migration dosyalarında sıfırlama işlemi yapmayın. Nasıl yapılacağını bilmenizde bir sakınca yok.