✅ سال 1401 رو با مطلبی در مورد django migrations شروع کنیم.
✔️ فرض کنید 2 برنامه نویس علی و رضا همزمان روی یک یا چند مدل دارن تغییرات میدن و هر کدوم مایگریشن های خودشون رو میسازن و روی دیتابیس لوکال مایگریت می کنن. بعد از تکمیل کارشون همه چی رو commit و push میکنن.
حالا ممکنه وقتی میخواهیم روی سرور مایگریت کنیم خطای Conflicting migrations detected رو ببینم. دلیلش هم مشخصه.
❓راهکار شما اینجا چیه؟
– بعضی ها کلا فولدر migrations رو ignore میکنن. (در این صورت اگه data migration داشته باشیم به فنا میره)
– بعضی ها توی تغییرات دیتابیسی سخت گیری میکنن و برنامه نویس اجازه نداره بدون هماهنگی تغییری در مدل ها اعمال کنه. (البته اگه قبل از کدنویسی تحلیل درستی داشته باشیم تغییرات حین توسعه به حداقل میرسه)
– بعضی ها هم تغییرات دیتابیس رو دستی روی سرور اعمال میکنن. (یکم مطمئن نیست و ممکنه باعث خطا بشه)
✔️ اما جنگو توی داکیومنت ها صراحتا گفته که مایگریشن ها جزئی از کدبیس هستن. پس نباید ignore کنیم.
✔️ جنگو کامند -merge رو برای مشکل conflict داره که می تونیم ازش استفاده کنیم.
مقاله زیر رو بخونید، در این مورد توضیح داده: