IT/PHP

[Laravel] migration 관련 , 테이블 생성, 컬럼 수정, 삭제

월공 2021. 9. 9. 14:40
728x90
300x250

라라벨에서 테이블 생성을 하려면 우선 migration 파일을 기반으로 해당이름에 맞게 테이블이 만들어짐으로 인해

먼저 migration 파일을 생성해줘야한다.

 

 

테이블 생성전에 migration 파일 먼저 생성

 

php artisan make:migration create_tests_table

database - migrations 폴더에 방금 마이그레이션한 파일이 생성

php artisan make:migrate

실행시 migrations 파일들이 테이블로 생성됨

 

 

컬럼추가시

 

php artisan make:migration add_column_to_tests_table --table=tests

 

public function up 부분에 추가할 컬럼들을 넣어준다.

마이그레이션 파일 수정후에 다시 php artisan migrate 실행하고 나면 아래처럼 tests 테이블에 추가한 컬럼들이 이상없이 추가된것을 확인 할 수 있다.

 

컬럼 수정시

 

composer require doctrine/dbal

우선 터미널에서 composer 를 이용해서 다운을 받아야하는데 혹시라도 에러가 발생한다면 아래처럼 친절하게 어디가 문제인지 알려주니까 해당 환경에 맞게 php.ini 파일을 수정해주면되겠다.

 

나는 window 개발환경이라 php.ini 메모장으로 열어서 해당 부분 ; 제거해주고 다시 composer 문 실행하니 정상적으로 실행되었다. mbstring , fileinfo 이거 두개 주석 해제해줬다. 

아래처럼 정상적으로 설치가 완료되었음.

 

테이블이 수정될때마다 migrations 파일명으로 정확히 명시를 해두며 기록을 남기는게 좋은듯하다.

php artisan make:migration modify_column_to_tests_table --table=tests

########################################################################

Schema::table('tests', function (Blueprint $table) {
	$table->renameColumn('address', 'aaaaaaa');
});

생성 후에 address 라는 column 을 aaaaaa 로 바꿔봤다.

수정 후에 다시 migrate 실행하고나면

정상적으로 바뀌는것을 확인할 수 있다.

 

 

컬럼 삭제시

 

마지막으로 컬럼 삭제, 진행방식은 모두 동일

migration 파일 생성 -> up() 안에 알아서 맞게 수정 -> migrate 실행

php artisan make:migration drop_column_to_tests_table --table=tests

########################################################################

Schema::table('tests', function (Blueprint $table) {
	$table->dropColumn(['aaaaaaa', 'username', 'count']);
});

 

728x90
300x250