رتبه موضوع:
  • 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش و نکات کار با Migration در لاراول
#1
سلام همان طور که در پست های قبلی اشاره کرده بودم یک آموزش کامل از نحوه ایجاد و مدیریت دیتابیس توسط Migration در لاراول را
آماده کردم که خدمت همه عزیزان تقدیم می کنم :
Migration ها به شما این اجازه را می دهند که دیتابیس خود را بدون مراجعه به ابزارهای کمکی مثل phpmyadmin مدیریت کنید .
یعنی برای ایجاد و مدیریت جداول و همچنین تغییرات در بانک اطلاعاتی میتوانید از migration ها استفاده کنید .
با این روش شما دیگر احتیاجی به نوشتن دستورات Sql ندارید و از دستورات زیر برای طراحی و مدیریت بانک اطلاعاتی استفاده نماپید .

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

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

در صورتی که از Mysql استفاده می کنید :
کد پی‌اچ‌پی:
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'نام دیتابیس ایجاد شده',
'username' => 'نام کاربری شما',
'password' => 'رمز عبور شما',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
), 

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

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

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

php artisan migrate:make create_posts_table

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

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

کد پی‌اچ‌پی:
class CreateTestTable extends Migration {
 
    
/**
     * Run the migrations.
     *
     * @return void
     */
    
public function up()
    {
        
// قسمت اول
    
}
 
    
/**
     * Reverse the migrations.
     *
     * @return void
     */
    
public function down()
    {
        
// قسمت دوم
    
}
 


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

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

کد پی‌اچ‌پی:
Schema::create('posts', function(Blueprint $table)
        {
            
$table->bigIncrements('id');
            
$table->string('title');
            
$table->string('slug');
            
$table->text('content');
            
$table->string('type'40)->index();
            
$table->bigInteger('user_id')->unsigned();
            
$table->boolean('is_published')->default(false);
            
$table->timestamps();
            
$table->foreign('user_id')->references('id')
                ->
on('users')
                ->
onDelete('cascade')
                ->
onUpdate('cascade');
 
            
$table->index(['title''slug']);
        }); 

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

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

کد پی‌اچ‌پی:
Schema::drop('posts'); 

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

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

کد پی‌اچ‌پی:
php artisan migrate 

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

کد پی‌اچ‌پی:
php artisan migrate:rollback 

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

کد پی‌اچ‌پی:
php artisan migrate:reset 

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


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  معرفی کتاب آموزش سئو sahand47 0 23 09-05-2017, 01:23 PM
آخرین ارسال: sahand47
  نکات قدرتمند فریم ورک لاراول – قسمت اول saeid1989 2 53 08-30-2017, 07:41 AM
آخرین ارسال: amir77
  گرفتن خورجی Excel در لاراول amirbakhtiari 1 514 07-10-2017, 09:35 AM
آخرین ارسال: shivanno18
  راهنمای یادگیری لاراول alihossein 2 2,344 06-30-2017, 03:05 PM
آخرین ارسال: majid5

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

درباره انجمن فریم ورک لاراول

انجمن لاراولیستا به عشق توسعه دهنده ها و علاقمندان به این فریم ورک محبوب ایجاد شده و امیدواریم با نظرات خوبتون ما رو در بهبود کار یاری کنید. در ضمن خیلی هم خوشحال میشیم شما هم در توسعه این انجمن سهمی داشته باشید.