sourcecode

Larabel 테이블 열 유형을 변경할 수 없습니다.

copyscript 2022. 9. 4. 21:47
반응형

Larabel 테이블 열 유형을 변경할 수 없습니다.

migrate:fresh를 실행할 수 없습니다.

다음 위치에서 테이블 열을 변경할 때 명령이 실패함:

$table->string('language_id')->default('')->length(255);

대상:

$table->integer('language_id')->unsigned()->default(1)->change();


오류 발생:

SQLSTATE [ 42000 ]:구문 오류 또는 액세스 위반: 1064 SQL 구문에 오류가 있습니다. 'CARTER SET utf8mb4 DEFAULT 1 Not N ULL COLATE' 근처에서 사용할 올바른 구문은 MariaDB 서버 버전에 해당하는 설명서를 참조하십시오.utf8mb4_unicode_ci' 행 1 (SQL: ALTER TABLE 사용자가 language_id language_id INT UNSIGNED CHA RACTER SET utf8mb4 DEFAULT 1이 아닌 NULL COLATE)utf8mb4_unicode_ci)

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

표준 솔루션이 작동하지 않는 경우.다음과 같이 시험해 보십시오.

public function up()
{
    DB::statement('ALTER TABLE mytable MODIFY mycolumn  INTEGER;');
}

public function down()
{
    DB::statement('ALTER TABLE mytable MODIFY mycolumn STRING;');
}

Larabel 문서에 따라 다음 사항이 있습니다.

주의: 열을 변경하기 전에 반드시 composer.json 파일에 교리/dbal 종속성을 추가하십시오.

이거 드셔보세요

Schema::table('your_table_name', function (Blueprint $table) {
        $table->unsignedInteger('language_id')->default(1);
});

교리/dbal 필요

composer require doctrine/dbal

새로운 이행 작성과 이 문서 작성

 public function up()
    {
        Schema::table('table_name', function (Blueprint $table) {
            $table->integer('language_id')->change();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('your_table_name', function (Blueprint $table) {
            $table->dropColumn('language_id');
        });
    }

언급URL : https://stackoverflow.com/questions/58818176/cant-change-laravel-table-column-type

반응형