실무로 사용할 수 있다! Laravel 기존 열의 순서를 변경하는 방법

Laravel 마이그레이션에서 기존 열의 순서를 변경하는 방법을 설명합니다.

라라벨 버전은 6계
mysql은 5.7계.
php는 7.4 계입니다.

>> 프리랜서도 대상! 엔지니어 전직에 추천하는 사이트 5선

마이그레이션을 이미 만들고 테이블을 만들었지만 열 순서를 변경하고 싶을 때가 있다고 생각합니다.

books 테이블
book_id
book_name
category_id

이것을 다음과 같이 하고 싶다.

books 테이블
book_id
category_id
book_name

가장 먼저 생각할 수 있는 것은 change 마이그레이션을 작성해, after로 대응하면 되는 것은 아닐까? 라고 생각할지도 모릅니다만, 잘 되지 않습니다.

그럴 때는 다음 방법을 시도해 봅시다.

우선, 컬럼의 순서를 변경하는 마이그레이션 파일의 작성
php artisan make:migration change_book_name_to_books_table --table=books

다음과 같이 마이그레이션 파일을 편집합니다.
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class ChangeBookNameToBooksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('books', function (Blueprint $table) {
            DB::statement("ALTER TABLE books MODIFY COLUMN book_name varchar(255) NOT NULL AFTER category_id");
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('books', function (Blueprint $table) {
            DB::statement("ALTER TABLE books MODIFY COLUMN book_name varchar(255) NOT NULL AFTER book_id");
        });
    }
}

마이그레이션 실행.
php artisan migrate

이 방법으로 기존 테이블의 열 순서를 변경할 수 있습니다.

DB::statement("ALTER TABLE books MODIFY COLUMN book_name varchar(255) NOT NULL AFTER category_id");

포인트는 상기입니다만, book_name 뒤의 varchar(255) NOT NULL 를 잊지 않고 기재해 주세요.

이번은 book_name의 형태는 문자열(string)로 null을 허용하지 않는 컬럼이었으므로, 이렇게 썼습니다.
※마이그레이션 파일에서는 string이지만, mySQL에서는 varchar인 것에 주의.

수치형의 경우는 int라고 합니다.

그 외에도 기사 쓰고 있으므로, 꼭 프로필에서 참조하십시오.
· 마이그레이션
· 쿼리 빌더 등
쓰고 있습니다.

>>Laravel의 마이그레이션이 무섭지 않다【작성·컬럼의 추가·삭제】
>>【Laravel 쿼리 빌더】 복수의 컬럼을 groupBy로 그룹화시킨다

>> 프리랜서도 대상! 엔지니어 전직에 추천하는 사이트 5선

좋은 웹페이지 즐겨찾기