라라벨 마이그레이션 롤백 문의
조회수 1104회
안녕하세요. 마이그레이션 연습한다고 이것저것 해보고 있는데 todos 테이블을 만들고 칼럼을 추가하기 위해서 artisan make: 명령으로 생성 추가 롤백등을 해보다 이해가 안되는 부분이 있어 문의드립니다.
아래는 실제로 작업한 스텝입니다.
- 생성한 todos마이그레이션으로 테이블생성
- todos테이블에 컬럼을 추가하기 위한 마이그레이션 생성
- 마이그레이션 실행하여 테이블에 칼럼 정상추가 확인
- 롤백
// 컬럼추가 마이그레이션파일
class AddColumnTodosTable extends Migration
{
public function up()
{
Schema::table('todos', function (Blueprint $table) {
$table->string('title');
});
}
public function down()
{
Schema::table('todos', function (Blueprint $table) {
$table->drop('title');
});
}
}
롤백하여 칼럼추가 마이그레이션이 롤백됨을 확인하였는데 todos테이블이 사라졌습니다. 원인을 모르겠는데 down메소드가 잘 못 작성되었나요? 아래는 위내용을 캡쳐한 이미지 입니다. 도움 부탁드립니다. ㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
마이그레이션을 잘 사용하지 않아서 정확하진 않지만
일단 메뉴얼 상에는$table->dropColumn('title');
https://laravel.kr/docs/5.3/migrations
이렇게 되어있네요.
그리고
php artisan migrate:refresh --step=1
처럼 스텝을 지정할 수 도 있네요.
라라벨에서 생성한 migrations 테이블의 batch 필드가 step을 진행하는데 참조 되는 거 같습니다.
이 두가지 참고가 되셨으면 합니다.
- 네 이슈 확인하였는데 drop은 table을 삭제하더라구요. dropColumn으로 메소드 변경하여 처리하였습니다. 리프레서 옵션은 몰랐는데 감사합니다 ^^ 알 수 없는 사용자 2017.2.6 12:36
- 아 그렇군요. Blueprint $table 의 인스턴스에서 drop을 실행하면 자기 자신이 삭제 되나보네요. Manki Kim 2017.2.6 12:38
댓글 입력