64호. 마이그레이션 작성시 디폴트 값에 표현식 사용하기 free

2019-10-01

페이스북 Laravel Korea 그룹에 아래와 같은 질문이 올라왔습니다.



호기심이 생겨서 해봤는데 가능하네요.


방법은 간단합니다. DB::raw()를 사용해서 내장함수를 사용하면 됩니다. DB::raw()는 쿼리빌더를 사용하면서 날쿼리를 함께 사용하고 싶을 때 사용하는 매서드입니다(매뉴얼 참고). 복잡한 쿼리를 작성해야 할 때 주로 쓰이죠. DB::raw()를 마이그레이션에서도 사용할 수 있습니다.


질문에 해당하는 내용은 아래와 같이 할 수 있습니다.


Schema::create('posts', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('content');
$table->uuid('uuid')->default(DB::raw('(uuid())'));
$table->timestamps();
});

디폴트 값에 표현식을 넣는 기능은 MySQL 8.0.13부터 가능한 것 같아요. 관련 내용은 여기를 참고하시기 바랍니다.


1일 1식 라라벨 64호

2019년 10월 1일


이현석

메쉬 코리아 개발자. 바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 2020년에 출간될 Laravel Up & Running 2nd Edition을 번역하고 있습니다.