خانه -- آموزش برنامه نویسی -- نصب لاراول | Migration ها و داده ریزی (seeding)

نصب لاراول | Migration ها و داده ریزی (seeding)

نصب لاراول | Migration ها و داده ریزی (seeding)

  • مقدمه
  • ساختن یک Migrations
  • اجرای Migration ها
  • بازگردانی Migration ها به عقب (rollback)
  • داده ریزی در بانک (Database Seeding)

مقدمه

Migration ها همانند سیستم های کنترل سورس کد SVN,Git ، ولی برای بانک اطلاعاتی تعبیه شده اند و به تیم کمک میکند تا تغییرات بانک اطلاعاتی را همانند سورس کد پروژه Commit کنند و اعضای تیم همیشه یک نسخه بروز از دیتابیس را برروی سیستم خود داشته باشند . Migration ها بطور کلی از Schema Builder استفاده مینمایند تا براحتی بتوانند تغییرات را بر روی ساختار (Schema) بانک اطلاعاتی اعمال و مدریرت کنند .

ساخت Migration

برای ساخت یک Migration ، دستور make:migration را در Artisan CLI وارد نمایید :

php artisan make:migration create_users_table

سپس Migration شما در مسیر database/migrations تولید خواهد شد . فریموورک برای نامگذاری فایل های Migration از یک Timestamp استفاده مینماید که ترتیب اجرای آنها را مشخص میکند .

برای تعیین اینکه Migration شما بر روی کدام جدول اعمال شود ، پارامتر --table را به آخر دستور آرتیسان خود اضافه کنید . واگر Migration شما قرار است یک جدول جدید درون بانک اطلاعاتی ایجاد نماید ، --create را به پارامتر های خود اضافه نمایید :

php artisan make:migration add_votes_to_users_table --table=users

php artisan make:migration create_users_table --create=users

اجرای Migration ها

دستور زیر تمامی Migration ها را بر روی دیتابیس اجرا میکند

php artisan migrate

نکته: اگر بواسطه اجرای دستور فوق یک خطای “class not found” دریافت کردید ، ابتدا دستورcomposer dump-autoload را در خط فرامان اجرا کنید .

 

اجرای بی چون و چرا Migration ها

گاهی اوقات Migration های شما نقشی مخرب دارند به این معنی که ممکن است اطلاعات بانک اطلاعاتی شما را از بیین ببرند ، به منظور جلوگیری از اجرای آنها دربانک اطلاعاتی (بانک اطلاعاتی سیستم در مرحله production) شما باید اجرای عملیات را تایید نمایید ، و اگر میخواهید تمامی عملیات بدون هیچ پرسشی از شما اجرا شود --force را به پارامتر اجرای Migration اضافه نمایید :
php artisan migrate --force

بازگردانی به عقب (rollback)

بازگردانی تغییرات به قبل از اجرای آخرین عملیات Migration

php artisan migrate:rollback

بازگردانی تمامی Migration ها

php artisan migrate:reset

بازگردانی تمامی Migration ها و اجرای دوباره آنها

php artisan migrate:refresh

php artisan migrate:refresh --seed

داده ریزی در بانک اطلاعاتی (Database Seeding)

لاراول همچنین از یک روش ساده برای پرکردن اطلاعات تستی در جداول شما استفاده میکنند . تمامی کلاس های seed شما در مسیر database/seeds ذخیره میشوند ، میتوانید برای کلاس های seed از هر نامی استفاده نمایید اما از قواعد نامگذاری لاراول نیز باید پیروی کنید . مانند UserTableSeeder و غیره .. ،همچنین به صورت پیشفرض یک کلاس DatabaseSeeder برای شما تعریف شده است . از متد call این کلاس میتوانید برای فراخوانی دیگر کلاسهای seed تان و کنترل ترتیب اجرای آنها استفاده نمایید .

یک نمونه از کلاس Seed

class DatabaseSeeder extends Seeder {

    public function run()
    {
        $this->call('UserTableSeeder');

        $this->command->info('User table seeded!');
    }

}

class UserTableSeeder extends Seeder {

    public function run()
    {
        DB::table('users')->delete();

        User::create(['email' => 'foo@bar.com']);
    }

}

برای اجرای عملیات داده ریزی از دستور db:seed در Artisan CLI استفاده نمایید :

php artisan db:seed

دستور db:seed به صورت پیشفرض کلاس DatabaseSeeder را اجرا میکند ، که به موجب آن دیگر کلاس های seed معرفی شده در آن اجرا میشود . میتوانید از پارامتر --class برای اجرای یک کلاس seed مشخص استفاده کنید تا تنها آن کلاس برای شما اجرا شود :

php artisan db:seed --class=UserTableSeeder

همچنین میتوانید توسط دستور migrate:refresh در آرتیسان برای rollback و اجرای دوباره تمامی Migration ها به همراه عملیات داده ریزی (seeding) استفاده نمایید :

php artisan migrate:refresh --seed

منبع : لارابوک

درباره‌ی علیرضا حسینی

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

حتما ببینید

قهوه گرم

انواع قهوه گرم موجود در ایران

قهوه یکی از نوشیدنی هایی است که سال های زیادی است که در ایران پرطرفدار …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *