2015-01-03 45 views
0

這是一個關於laravel的非常基本的問題。laravel4更新現場服務器遷移文件

我有一個遷移文件類似的東西

<?php 

use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class CreateDonorsTable extends Migration { 

/** 
* Run the migrations. 
* 
* @return void 
*/ 
public function up() 
{ 
    Schema::create('donors', function(Blueprint $table) 
    { 
     $table->increments('id'); 

     $table->string('donor_name'); 

     $table->string('email')->unique(); 
     $table->string('blood_group'); 
     $table->string('phone_number')->unique()->nullable(); 
     $table->string('location'); 
     $table->date('date_of_birth'); 
     $table->date('last_date_of_donation'); 

     $table->timestamps(); 
    }); 
} 

/** 
* Reverse the migrations. 
* 
* @return void 
*/ 
public function down() 
{ 
    Schema::drop('donors'); 
} 

} 

,並使用該遷移的文件我已經遷移我的數據庫和上傳它在一個直播服務器。現在我必須更新我的遷移文件,並且必須添加一個新字段,即donor_image

如何在活動服務器上執行此操作?在活動服務器中上傳大型項目後更新遷移文件的最佳方法是什麼?

回答

0

最佳做法是使另一個遷移文件僅包含更改(如添加列)。

然後您運行新的遷移 - 這隻會使列出的更改的子集。

更改原始遷移文件不正確 - 現在您無法使用它來應用更改(而不銷燬原始表)。

+0

但似乎根據您的答案,我必須在本地使用cmd來做這件事嗎?如果是這樣,那麼我的問題是,我如何直接爲活服務器執行此操作? – RTan

+0

1.製作新的遷移文件。 2.獲取遷移文件到服務器上(通過git update,或者複製)。 3.在運行的服務器上運行'php artisan migrate' – Laurence