본문 바로가기

웹 기초/laravel

마이그레이션

마이그레이션 = migration = 이주 

 

데이터 스키마의 버전 관리. 

데이터베이스 마이그레이션을 이용하면, 테이블에 새로운 열을 추가한다든지, 열 이름을 바꾼다든지 하는 이력을 마이그레이션 코드로 남겨 두고 필요할 때마다 마이그레이션을 실행했다가 롤백하는 등의 작업을 자유롭게 할 수 있다. 

 

작성하는 것이 번거로워도, 작성해두면 데이터베이스 스키마 때문에 위기에 처하거나 변경 요구가 생겼을 때 효과적으로 대응할 수 있다. 

 

= 마이그레이션은 스키마를 효과적으로 관리하고, 최신 테이블 스키마를 다른 개발자와 편리하게 공유할 수 있는 방법이다. 


1. class '테이블이름' extends Migration 

'테이블이름'을 만드는 클래스로, 마이그레이션을 확장시켜서 만든다. 

 

2. public function up()

up()=마이그레이션을 '실행' 하는 메서드, down()='롤백(되돌리기)'을 위한 메서드 

up의 메서드를 지정한 밑 부분에 보면, down 메서드도 있을 것이다.

 


마이그레이션 실행 

 

1. php artisan migration 

실행하면 마이그레이션'들'의 안에 넣어놨던 설정들이 실행된다. 

나는 기존것2개(맨 처음 프로젝트 만들때 자동인것2개) 새로만든 것 2개로 총 4개를 실행시켰다. 

처음부터 있었던 기존것2개는 무시하고 새로만든 것만 실행됐다. 

 

cmd에서 실행
테이블 블러스로 확인한 생성화면


마이그레이션 롤백 

 

생성(up)은 뒤에 up 이라고 안적어도 됐지만, 롤백의 경우에는 뒤에 꼭 rollback을 지정해줘야한다. 

 

 

롤백 화면

    public function down()
    {
        Schema::dropIfExists('posts');
    }

클래스를 지우는 기능을 down에 적어서 혹시나 해봤으나 되지 않았다. 

롤백은 무조건 :rollback 인것 같다. 

down 입력

그리고, 롤백 후에는 새로고침을 하면 데이터베이스 내용이 모두 사라져있다. 

아래 캡쳐는 migration 테이블의 상황이다. 

아무것도 없다. 

roll back 후

cmd에서 rollback을 한다고해서, 마이그레이션 파일 자체가 사라지는 것은 아니다. 

'웹 기초 > laravel' 카테고리의 다른 글

laravel 노트 필기  (0) 2020.02.12
tinker  (0) 2020.01.25
템플릿 상속  (0) 2020.01.25
제어구조  (0) 2020.01.25
설치 후 구동하기  (0) 2020.01.17