آموزش migration ها در لاراول

آموزش migration ها در لاراول

بروزرسانی : 3 سال پیش
دسته بندی :‌ - فریمورک لاراول

ویدیو آموزش مایگریشن یا migration ها در لاراول 

 

مایگریشن یا migration ها در لاراول چه کاربردی دارند 

آموزش مایگریشن ها در لاراول

در توسعه ی یک وب سایت با لاراول ، ممکن است پایگاه داده در طول توسعه به مرور تکامل پیدا کند ، مثلا فرض کنید در طول توسعه ی یک سایت با لاراول قصد داشته باشیم یک جدول جدید به پایگاه داده اضافه کنیم یا یک ستون به جدولی که وجود دارد اضافه کنیم یا اصلا نام جدول و ستون و ... را تغییر دهیم ! ممکن است در طول مسیر یک اشتباهی انجام دهید و بخواهید به حالت قبلی برگردید ! در این صورت هیچ تاریخچه ای از کارهایی که بصورت دستی انجام دادید وجود ندارد اینجاست که مایگریشین های لاراول به کمک شما می آید . migration ها مسیر ایجاد و تغییرات پایگاه داده را نگهداری میکند و شما میتوانید مرحله به مرحله ی انجام تغییرات در پایگاه داده را بفهمید و اگر از تغییرات گذشته پشیمان بودید به حالت قبلی پایگاه داده برگردید.

همچنین زمانی که یک پروژه بصورت تیمی توسعه داده میشود مایگریشین ها به شما کمک میکند تا تغییرات جدید روی پایگاه داده را بدون نیاز به حذف و ایجاد کلی دیتابیس آپدیت کنید.

اگر با ورژن کنترلرهایی مثل گیت کار کرده باشید مایگریشین نیز مشابه گیت عمل میکند ولی برای پایگاه داده !

مایگریشین ها فایل هایی هستند که بصورت فایل php در مسیر /database/migrations  ذخیره سازی میشوند. هر فایل مایگریشین شامل تغییراتی در پایگاه داده است که در لاراول شما میتوانید در هر لحظه ای تغییرات هر مایگریشین را اعمال یا آنرا برگردانید.

 

دستورات Artisan مربوط به مایگریشین ها در لاراول

آموزش migration ها در فریمورک laravel

فریمورک laravel به همراه دستورات کمکی برای مایگریشین ها عرضه شده است و شما میتوانید با این دستورات که در زیر آموزش میدهیم از ابزار مایگریشین برای ساخت و مدیریت پایگاه داده ی خود استفاده کنید. این دستورات توسط artisan اجرا میشوند.

اگر قبلا لاراول را یاد نگرفته اید پیشنهاد میکنیم از دوره ی آموزش فریمورک لاراول ما استفاده کنید.

 

دستور migrate:install

این دستور برای ایجاد جدول migration در پایگاه داده استفاده میشود. این جدول برای نگهداری تاریخچه ی مایگریشین های اجرا شده در اپلیکیشین لاراولی شما استفاده میشود.

 

دستور migrate 

با اجرای این دستور تمام مایگریشین هایی که در انتظار اجرا هستند به اجرا در می آیند و تغییرات آنها روی دیتابیس اعمال میشود.

 

دستور migrate:make

این دستور برای ساختن یک مایگریشین جدید استفاده میشود. با اجرای این دستور فایل جدیدی در مسیر database/migrations ساخته میشود. در ابتدای نام فایل مایگریشین بصورت خودکار زمان و تاریخ اضافه میشود تا مشخص شود برای چه زمانی است.

 

دستور migrate:rollback

با این دستور به مرحله ی قبلی مایگریشین باز میگردید یعنی هر تغییری که بعنوان آخرین تغییر توسط مایگریشین اعمال شده است به حالت قبل از آن برمیگردد.

 

دستور migrate:reset

با این دستور تمام مایگریشین های اجرا شده به حالت اول باز میگردد. این دستور همان دستور migrate:rollback برای همه ی مایگریشین هاست.

 

دستور migrate:refresh

این دستور تمام مایگریشین ها را به حالت اول بازمیگرداند یعنی همان دستور migrate:reset را اجرا میکند و سپس تمام مایگریشین ها را مجددا اعمال میکند که همان دستور migrate است. به عبارتی همه تغییرات پایگاه داده را پاک میکند و دوباره میسازد.

 

آموزش ساخت پایگاه داده جدید با migration در لاراول

قدم اول : قبل از هر کاری با migration ها در لاراول بهتر است دستور زیر را اجرا کنید تا مطمعن شوید جدول اصلی خود مایگریشین ها در دیتابیس شما ساخته شده است : 

php artisan migrate:install

اگر دستور بالا با موفقیت اجرا شود در دیتابیس خود خواهید دید که یک جدول با نام migrations ساخته شده است.

قدم دوم : با استفاده از دستور زیر شما میتوانید یک migration جدیدی برای ساختن جدول posts  ایجاد کنید:

php artisan make:migration create_posts_table --create=posts

زمانی که دستور بالا را با موفقیت اجرا کردید در مسیر database/migrations یک عدد فایل اضافه خواهد شد که نام آن به شکل [timestamp]_create_posts_table.php است . منظور از timestamp زمان و تاریخ ساخت فایل است که بصورت خودکار در نام قرار میگیرد.

 

ساختار فایل migration در لاراول

فایل migration که در بالا ساختیم را باز کنید . محتویات درون این فایل باید مشابه کدهای زیر باشد : 

<?php
 
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
 
class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }
 
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('posts');
    }
}

توجه کنید که هر فایل مایگریشینی که ساخته میشود از کلاس اصلی Migration ارث بری میکند و باید دارای دو متود به نام های up و down باشد.

 

متود up در فایل مایگریشین لاراول

متود up شامل تمام تغییرات یا ستون های جدیدی است که به محض اجرا کردن مایگریشین روی دیتابیس اعمال میشود. 

 

متود down در فایل مایگریشین لاراول

این متود زمانی اجرا میشود که دستور rollback  اجرا گردد معمولا هر انچه که درون این متود هست معکوس متود up میباشد.

در مثال بالا درون متود up تابعی به نام Schema::create را مشاهده میکنید که وظیفه ی ساختن جدول posts را دارد.

در هر دو متود بالا میتوانیم از توابع schema  لاراول استفاده کنیم که به مدیریت خود جدول پایگاه داده ی ما میپردازند.

در زیر توابع schema  لاراول را مشاهده میکنید.

عملیات در سطح جدول :‌

  • create  که وظیفه ی ساختن یک جدول جدید را برعهده دارد
  • drop که وظیفه ی حذف کردن کلی یک جدول را بر عهده دارد.
  • dropIfExists این تابع همان تابع drop است با این تفاوت که موجود بودن جدول را ابتدا چک میکند.
  • rename نام یک جدول را تغییر میدهد.

عملیات در سطح ستون ها :‌

  •  dropColumn($columns) این تابع ستون یا ستون هایی را از جدول پاک میکند اگر ستون بیش از یک مورد باشد باید بصورت آرایه ارائه شود.
  • renameColumn(‘from’, ‘to’);  از این تابع برای تغییر نام یک ستون در جدول استفاده میشود.

عملیات در سطح ایندکس جداول :‌

  • primary($columns) این تابع برای مشخص کردن کلید اصلی جدول یا همان primary key تعریف میشود.
  • unique($columns) این تابع برای مشخص کردن unique بودن یک ایندکس جدول استفاده میشود
  • index($columns) از این تابع برای تعریف کردن یک index به جدول استفاده میشود.
  • foreign($columns) از این تابع برای تعریف کردن کلید خارجی یا foreign key استفاده میشود
  • dropPrimary($index) از این تابع برای حذف کردن primary key استفاده میشود
  • dropUnique($index) از این تابع برای حذ ف کردن unique استفاده میشود
  • dropIndex($index) از این تابع برای حذف کردن index جدول استفاده میشود
  • dropForeign($index) از این تابع برای حذف کردن foreign key استفاده میشود

 

قدم آخر 
برای اجرا کردن تمام مایگریشن های ساخته شده در پروژه ی لاراول خود دستور زیر را اجرا کنید تا روی دیتابیس شما اعمال شوند : 

php artisan migrate

 

 

لینک کوتاه این مقاله : https://avasam.ir/post/209
این سیستم برپایه ی علاقه مندی شما یک دوره ی مناسب به شما پیشنهاد میدهد
مرا بسوی بهترین دوره ی آموزشی که برای من مناسب است هدایت کن 🤖
برای استفاده ی دیگران و حمایت از ما در جامعه های زیر به اشتراک بگذارید

.:: نظرهای کاربران ::.
دوره ی آموزش پروژه محور ساخت کافه بازار دوره ی آموزش پروژه محور ساخت فروشگاه دیجیکالا آموزش لاراول دوره ی آموزش ویو جی اس