본문 바로가기
개발/라라벨 Laravel

[라라벨 Laravel] Artisan 의 migration 에 대해서 (Laravel 의 Artisan)

by 언제나초심. 2018. 4. 8.
반응형

artisan 이란? 

내부에서 실행할 수 있는 콘솔 같은 개념이다. 상위 폴더에 보면 artisan 이라는 파일이 있는데, 이것을 통해서 명령어를 실행하는 듯 하다. php 명령어 를 실행하는 개념 일 것으로 추측해 볼 수 있다. 이와 비슷한 것을 미디어위키에서도 볼 수 있다.

php 가 환경변수에 설정되어 있다면, linux 든 windows 든 사용이 가능하다.

만약 실행이 안 된다면, 리눅스나 윈도우에서 '환경변수' 를 살펴볼 것.


migration (artisan 에서 말하는) 이란? 

migration 은 데이터베이스의 테이블을 핸들링하기 위한 방법이다. (laravel 의 artisan 에서 말하는 migration)

php artisan make:migration {명칭} 을 하면 database/migrations 폴더에 파일이 추가가 된다. class 파일이 추가가 되는데, 여기서 테이블과 컬럼명과 속성, pk, fk, increments 등의 속성을 넣어준다.

작업이 완료되면 php artisan migrate와 같은 명령어를 실행하면 데이터베이스에 적용이 된다.

적용된 상태는 migrations 테이블에 내역이 있다.

artisan 명령어로도 확인할 수 있는데 php artisan migrate:status 와 같은 명령어로 확인이 가능하다.

Ran 값이 Y 또는 N 으로 되어 있을 것인데, Y 로 된 것은 이미 실행된 스크립트 라는 의미이다. N 은 아직 실행이 안 되었다. N 으로 표시된 것이 여러개인 상태에서, php artisan migrate 를 하게 되면, 전부 Y 로 바뀌고 실행되게 된다.


rollback 기능에 대해서 

rollback 기능이 있는데 php artisan migrate:rollback 와 같은 명령어를 사용한다. 전 단계의 실행했던 것들이 다 rollback 된다. 테이블을 추가했었다면, 그냥 지워지게 된다. drop 쿼리문 이 실행될 수 있다. 그러니 미리 데이터를 잘 보관해두고 rollback 을 실행해두어야 한다.

rollback 되는 개념은 전 단계에서 처리된 것들이 전부 rollback 되는 개념이다. 바로 전에서 테이블을 3개 생성했다면, 3개 전부 drop 될 수 있다. 

데이터베이스에서 migrations 테이블의 batch 컬럼값을 살펴보면, 어떤 순서로 rollback 될지를 짐작해 볼 수 있다.



반응형