it-source

Larabel 마이그레이션에서 열을 null로 만들 수 없습니다.

criticalcode 2023. 1. 15. 16:57
반응형

Larabel 마이그레이션에서 열을 null로 만들 수 없습니다.

테이블에서 특정 열을 만들기 위해 마이그레이션을 쓰고 있습니다.nullable지금 당장.다운 기능은 물론 그 컬럼을 만들고 싶다.not nullable스키마 빌더 문서를 뒤져봤지만 방법을 찾을 수가 없었어요

어떤 도움이라도 주시면 감사하겠습니다.

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

단, Larabel 5부터는 다음 기능을 사용할 수 있습니다.

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

위의 명령어를 실행하기 전에 dbal 의존관계가 필요합니다.

composer require doctrine/dbal

Larabel 5에서는 false를 전달함으로써 이를 되돌릴 수 있습니다.nullable.

$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();
    });
}

# Optional:
# public function down()
# {
#     Schema::table('table_name', function ($table) {
#         $table->type('column')->nullable()->change();
#     });
# }

->nullable() 없이 열을 다시 선언하고 ->change를 사용할 수 있습니다.

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->type('column')->nullable()->change();
    });
}

larabel 8 에서는, 「->nullable()」이라고 하는 입력만 하면 됩니다.

$table->string('name')->nullable(); 

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

반응형