🚀 مدیریت Migrationها در لاراول با shouldRun()
وقتی از feature flagها یا استراتژی rollout مرحلهای استفاده میکنید، ممکنه بخواهید بعضی migrationها فقط در صورتی اجرا بشن که یک ویژگی خاص فعال باشه. قبلاً این کار نیاز به ترفندهای دستی یا مدیریت سخت migrationها داشت.
حالا لاراول با معرفی متد جدید
🧠 این migration فقط زمانی اجرا میشه که feature مربوطه فعال باشه. اگه فعال نباشه، بدون خطا رد میشه و هیچ رکوردی توی جدول migrations ثبت نمیشه.
✅ نکات مهم:
یک نکته این که shouldRun() هم در migrate و هم در rollback در نظر گرفته میشه، پس رفتار migration در هر دو مسیر هماهنگه.
دیگه نیاز نیست migrationهایی که فقط در محیط خاص یا برای tenant خاص هستن رو دستی مدیریت کنید.
ایدهآل برای اپلیکیشنهای multi-tenant، ویژگیهای قابل غیرفعال/فعالسازی و استقرار مرحلهای (progressive deployment).
#Laravel #Migration #FeatureFlags #shouldRun #SaaS #BackendTips #ProgressiveDeployment
@panicdev
وقتی از feature flagها یا استراتژی rollout مرحلهای استفاده میکنید، ممکنه بخواهید بعضی migrationها فقط در صورتی اجرا بشن که یک ویژگی خاص فعال باشه. قبلاً این کار نیاز به ترفندهای دستی یا مدیریت سخت migrationها داشت.
حالا لاراول با معرفی متد جدید
shouldRun() این مشکل رو حل کرده. این متد به هر migration اجازه میده خودش تصمیم بگیره که اجرا بشه یا نه.🧠 این migration فقط زمانی اجرا میشه که feature مربوطه فعال باشه. اگه فعال نباشه، بدون خطا رد میشه و هیچ رکوردی توی جدول migrations ثبت نمیشه.
✅ نکات مهم:
یک نکته این که shouldRun() هم در migrate و هم در rollback در نظر گرفته میشه، پس رفتار migration در هر دو مسیر هماهنگه.
دیگه نیاز نیست migrationهایی که فقط در محیط خاص یا برای tenant خاص هستن رو دستی مدیریت کنید.
ایدهآل برای اپلیکیشنهای multi-tenant، ویژگیهای قابل غیرفعال/فعالسازی و استقرار مرحلهای (progressive deployment).
#Laravel #Migration #FeatureFlags #shouldRun #SaaS #BackendTips #ProgressiveDeployment
@panicdev
👍8