2017-02-27 4 views
2

마이그레이션을 사용하는 방법을 배웠습니다. 나는 성공적으로이 스키마에 테이블을 생성 : 데이터베이스 테이블에 새 열을 추가 할 때 마이그레이션이 실패 함 - 마이그레이션 할 항목이 없습니다.

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

가 Unfortunattely 내가 열 path을 놓친, 그래서 그것을 추가하는 시도했습니다. 처음에는 새 열을 추가하는 방법을 알아보기 위해 larvel documentation에 직접 알 렸습니다. 문서에서

:

스키마 외관에 테이블 방법은 기존 테이블을 업데이트 할 수 있습니다.

내 시도 :

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

    Schema::table('units', function (Blueprint $table) { 
     $table->string('path'); 
    }); 
} 

그러나, php artisan migrate을 실행 한 후 나는 Nothing to migrate를 얻을.

내가 뭘 잘못하고 있니?

php artisan migrate:rollback 

을 그리고 다시 php artisan migrate 명령을 실행

답변

4

당신은 모든 데이터를 마지막으로 마이그레이션 테이블을 파괴 할 첫 번째 마이그레이션을 롤백해야합니다. 앱을 개발하는 중에 가장 좋은 방법입니다.

당신은 (응용 프로그램은 라이브 등이다), 그러나 다만 다음 열을 추가 새로운 마이그레이션을 작성하고이 코드를 추가 할 어떤 이유로 그렇게하지 않으려면 :

public function up() 
{ 
    Schema::table('units', function (Blueprint $table) { 
     $table->string('path'); 
    }); 
} 

을 그리고 다음을 실행 명령 :

composer dumpauto 
php artisan migrate 
+0

좋아하지만, 롤백 또는, 다시 마지막 마이그레이션을 롤 수, 누락 된 열을 추가하고 마이그레이션을 다시 실행

가 롤백 (프로덕션에서 마이그레이션을 실행하지 않은 가정) php artisan migrate : rollback'은 이미 존재하는 모든 데이터를 테이블에서 제거 할 것인가? 옳은? – Black

+1

@EdwardBlack 첫 번째 옵션은 '예'입니다. 이전 이주에서 모든 테이블을 제거합니다. 원하지 않으면 두 번째 옵션을 사용하십시오. –

+0

나는'php artisan migrate : rollback' 명령이 단지 migratation 파일에서'down()'메쏘드를 실행할 것이라고 수정합니까? 만약에'echo 'hello';'를 실행하고 롤백 명령을 실행하면 콘솔 안쪽에 'hello'가 표시되므로 올바른 것으로 가정합니다. – Black

1

열 업데이트를 위해 새 마이그레이션을해야합니다. PHP는 장인의 마이그레이션이 :`