developer tip

Laravel 마이그레이션에서 열이 널 입력 가능하지 않도록 설정

optionbox 2020. 8. 5. 08:09
반응형

Laravel 마이그레이션에서 열이 널 입력 가능하지 않도록 설정


nullable지금 테이블에 특정 열을 만들기 위해 마이그레이션을 작성 중입니다. down 함수의 경우, 물론 해당 열을 not nullable다시 만들고 싶습니다 . 스키마 빌더 docs를 살펴 보았지만 이를 수행하는 방법을 알 수 없었습니다.

도움을 주시면 감사하겠습니다.


Laravel 5 이전에는 스키마 빌더를 사용하여 기존 테이블 열을 변경하는 Laravel 기본 방법이 없었습니다. 이를 위해 원시 쿼리를 사용해야합니다.

그러나 Laravel 5부터 다음을 사용할 수 있습니다.

$table->...->nullable(false)->change();

Laravel 5부터는 이것을 기본적으로 되돌릴 수 있습니다. 단순히 nullable ()에 인수로 false를 전달하면됩니다.

예 :

$table -> string('foo') -> nullable(false) -> change();

먼저 이것을 실행하십시오 :

composer require doctrine/dbal

그런 다음 테이블을 다음과 같이 변경하는 마이그레이션을 작성하십시오.

php artisan make:migration fix_whatever_table_name_here

public function up()
{
    Schema::table('table_name', function (Blueprint $table) {
        $table->type('column')->nullable(false)->change();
    });
}

public function down()
{
    Schema::table('table_name', function ($table) {
        $table->dropColumn('column');
    });
}

아래 정보는 SQL 용입니다
. 아래 코드를 먼저 사용하십시오.

UPDATE [Table] SET [Column]=0 WHERE [Column] IS NULL

이 코드를 실행하는 것보다

ALTER TABLE [Table] MODIFY [Column] INTEGER NOT NULL

참고 URL : https://stackoverflow.com/questions/14013832/make-column-not-nullable-in-a-laravel-migration

반응형