آموزش و نکات کار با Migration در لاراول


سلام همان طور که در پست های قبلی اشاره کرده بودم یک آموزش کامل از نحوه ایجاد و مدیریت دیتابیس توسط Migration در لاراول را
آماده کردم که خدمت همه عزیزان تقدیم می کنم :
Migration ها به شما این اجازه را می دهند که دیتابیس خود را بدون مراجعه به ابزارهای کمکی مثل phpmyadmin مدیریت کنید .
یعنی برای ایجاد و مدیریت جداول و همچنین تغییرات در بانک اطلاعاتی میتوانید از migration ها استفاده کنید .
با این روش شما دیگر احتیاجی به نوشتن دستورات Sql ندارید و از دستورات زیر برای طراحی و مدیریت بانک اطلاعاتی استفاده نماپید .

برای کار با دیتابیش از طریق Mygration Laravel ابتدا یک بانک اطلاعاتی در DBMS خود مثلا Mysql خود با ابزارهای مانند Phpmyadmin ایجاد نماپید . چرا که این روش برای همه دیتابیس های درگیر با لاراول قابل اجرا می باشد و صرفا برای Mysql نمی باشد .

بعد از ایجاد بانک اطلاعاتی به مسیر app/config/database.php  بروید و کد زیر را ویرایش کنید

در صورتی که از Mysql استفاده می کنید :

1

سپس نوبت به ایجاد و مدیریت جداول بانک اطلاعاتی می رسد

در مرحله اول ابتدا یک mygration برای جدول مورد نظر ایجاد می کنیم مثلا جدولی با عنوان Posts

با اجرای این دستور در ترمینالو در شاخه اصلی پروژه خود میتوانید migration جدولی به اسم Posts  ایجاد کنید :

1

به عبارت create_ در ابتدا و _table در انتهای نام جدول دقت نماپید که شما نیز در طراحی جداول می بایست از این عبارات در ابتدا و انتهای mygration استفاده نماپید .
بعد از وارد کردن دستور فوق یک فایل در آدرس app/database/migrations/ برای شما ایجاد می شود .

در فایل ایجاد شده عبارت زیر به صورت اتوماتیک ایجاد می شود .

1

در کد ایجاد شده دو قسمت می باشد که قسمت اولیه در مرحله صدا زدن مستقیم migration اجرا می شود و قسمت دوم در زمان صدا زدن به عنوان بازگشتی (rollback) استفاده می شوند .

حال برای ایجاد بانک اطلاعاتی از دستوراتی استفاده می کنیم که در این قسمت با یک مثال توضیح می دهم :

1

bigIncrements : زمانی که بخواهیم یک فیلد با نوع عدد بزرک به صورت increment (شماره گذاری خود کار ) ایجاد کنیم .
string : برای زمانی که بخواهیم یک فیلد از نوع string ایجاد کنیم و در پارامتر دوم مقدار کاراکتر را وارد می کنیم .
text : زمانی که بخواهیم یک فیلد از نوع متن طولانی را ایجاد نماپیم .
integer : زمانی که بخواهیم یک فیلد از نوع عدد ایجاد نماپیم .
bigInteger : زمانی که بخواهیم یک فیلد از نوع عددبزرگ ایجاد نماپیم .
boolean : برای ایجاد فیلد های از نوع انتخابی true / false می باشد .
timestamps : برای ایحاد فیلد های زمانی کنترل زمان ارسال و مدیریت سطر های بانک اطلاعاتی می باشد .
برای ایجاد یک ارتباط (Relation) با جداول دیگر از کد foreign استفاده می کنیم که با references فیلد رابط و on نام جدول طرف دوم ارتباط را مشخص می کنیم onDelete و onUpdate مشخص می کنند که هنگام تغییرات روی سطر مبدا چه اتفاقی برای سطرهای سیار جدول ها که با جدول ارتباط دارند رخ دهد .
index : برای ایندکس کردن فیلد های جدول از این دستور استفاده می کنیم.

در مرحله بعد باید مشخص کنیم که در هنگام rollback یعنی قسمت دوم کد چه اتفاقی رخ بدهد به کد زیر دقت کنید :

1

ما در اینجا مشخص کردیم که هنگام rollback جدول را کلا حذف نماید .

در مرحله بعد برای اجرای migraton های ایجاد شده از دستور زیر استفاده می شود :

1

برای بازگشت به تغییرات یک مرحله قبل می توانید از این دستور استفاده کنید:

1

و برای ریست کلی از این دستور :

1

در پایان عرض کنم که لاراول به هیچ وجه شما را مجبور به استفاده از migration نمی کند و شما می توانید به همان روش های قبلی نیز بانک اطلاعاتی را ایجاد و مدیریت نماپید .

موفق باشید.