Quick Migration چیست؟

سلام امیدوارم حالتون خوب باشه :)


وقتی که نسخه اولیه ماکارونی رو ریلیز کردم بخش هایی مثل Auth, Migration , ... رو نداشت برای همین شروع کردم به اضافه کردن بخش های ناموجود که اول از همه سراغ Migration رفتم که یک سیستم مایگریشن برای فریمورک داشته باشم.

اینجا بود که ایده Quick Migration به ذهنم رسید!



Quick Migration چجوری کار میکنه؟


بصورت کلی Quick Migration از سه بخش تشکیل شده:


۱- نوشتن استراکچر (Structure):


به این صورت که ما structure یا schema خودمون رو با استفاده از کلاس Structure مینویسیم:

$structure = new Structure('test');

$structure->number('foo', Type::Int)->nullable();
$structure->string('bar', ۱۰۰)->unique();

//...




۲- ترجمه (Translate) استراکچر به SQL:


بعد از اینکه strucute خودمون رو نوشتیم باید اون رو برای اجرا به SQL تبدیل کنیم که کلاس های Translator اینکار رو برای ما انجام میدن. در حال حاضر برای دو دیتابیس MySQL و Postgresql مترجم وجود داره.



۳- اجرای دستور (Command) موردنظر:


حالا باید مشخص کنیم که چه دستوری رو میخوایم اجرا کنیم در حال حاضر سه دستور Migrate , Drop , Dropiftableexists موجود هستند ( البته این دستورات هم باید به SQL ترجمه بشن که بخش CommandTranslator اینکار و انجام میده).




چرا Quick Migration رو نوشتم؟


بعضی اوقات پیش میومد که پروژه ایی رو باید تو یه سیستم دیگه اجراش میکردم و دسترسی هم به فایل دیتابیسم نداشتم و البته دیتا ها هم زیاد اهمیت نداشت ولی باید دوباره شروع میکردم به نوشتن استراکچر تیبل هام تا برنامه درست کار کنه و این خوب نبود!

از طرفی کار طاقت فرسایی هم بود ولی الان یکبار استراکچرم رو مینویستم و ران میکنم بدون دغدغه خاصی...


این بود شرح ماجرا Quick Migration که امیدوارم براتون جالب بوده باشه.


میتونید داکیومنت کامل Quick Migration رو از اینجا بخونید


مخلص :))


نظرات (0)

پست های مرتبط