5.2

2016-06-04 17 views
13

Ben articles tablo Schema böyle tanımlandığı için bir blog ettik:5.2

public function up() 
{ 
    Schema::create('articles', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('user_id')->unsigned(); 
     $table->string('title'); 
     $table->string('thumb')->nullable(); 
     $table->text('excerpt'); 
     $table->text('body'); 
     $table->string('slug')->unique(); 
     $table->integer('comment_count')->unsigned()->default(0); 
     $table->integer('view_count')->unsigned()->default(0); 
     $table->timestamps(); 
     $table->softDeletes(); 
} 

public function down() 
{ 
    Schema::drop('articles'); 
} 

masanın

varolan verileri kaybetmeden sütunları comment_count ve view_count damla istiyorum

böyle yeni bir göç tanımlanmış:

class RemoveCommentViewCount extends Migration 
{ 
    public function up() 
    { 
     //nothing here 
    } 

    public function down() 
    { 
     Schema::table('articles', function($table) { 
      $table->dropColumn('comment_count'); 
      $table->dropColumn('view_count'); 
     }); 
    } 
} 

ve ben php artisan migrate yaptı. Başarılı bir şekilde göç etti, ancak iki sütun düşmedi.

Neyi yanlış yapıyorum? Tablodaki mevcut verileri kaybetmeden bu sütunları nasıl bırakabilirim?

+1

, "php artisan migrate" 'ı çalıştırdığınızda tetiklenen 'up()' yöntemidir. Aşağıda açıklandığı gibi 'göç etme: yenileme 'veya' geri alma 'yapmanız durumunda' down() 'yöntemi tetiklenir. – daneczech

cevap

24

Sizin göç böyle bakmalıyız:

Class RemoveCommentViewCount extends Migration 
    { 
     public function up() 
     { 
      Schema::table('articles', function($table) { 
      $table->dropColumn('comment_count'); 
      $table->dropColumn('view_count'); 
      }); 
     } 

     public function down() 
     { 
      Schema::table('articles', function($table) { 
      $table->integer('comment_count'); 
      $table->integer('view_count'); 
      }); 
     } 
    } 

dropColumn yukarı yönteminde, yeni göç ile bu sütunları silmek istiyor çünkü.

Schema::table('articles', function (Blueprint $table) { 
    $table->integer('comment_count')->unsigned()->default(0); 
    $table->integer('view_count')->unsigned()->default(0); 
}); 

ve ardından koşmak migration.php dosyasında bir geri alma yaparsanız,

+0

Çalıştı. Teşekkür ederim. +1 – byteseeker

+2

Bir sütun sütun dizisini dropColumn yöntemine geçirerek bir tablodan birden çok sütun bırakabilirsiniz: $ table-> dropColumn (['oy', 'avatar', 'konum']); – mcmacerson

0

Hemen aşağı bu kodu eklemek iki sütun başka seferinde var() fonksiyonu ->php esnaf geçişi: @ Sangar82'ye işaret ettiği gibi