Programing

마이그레이션을 사용하여 laravel에서 열의 이름을 어떻게 바꿀 수 있습니까?

lottogame 2020. 12. 11. 07:42
반응형

마이그레이션을 사용하여 laravel에서 열의 이름을 어떻게 바꿀 수 있습니까?


아래에 언급 된 열이 있습니다.

public function up()
{
    Schema::create('stnk', function(Blueprint $table)
    {
        $table->increments('id');
        $table->string('no_reg', 50)->unique();
        $table->string('no_bpkb', 50)->unique();
        $table->string('nama_pemilik', 100);
        $table->string('alamat');
        $table->string('merk', 50);
        $table->string('tipe', 50);
        $table->string('jenis', 50);
        $table->smallInteger('tahun_pembuatan');
        $table->smallInteger('tahun_registrasi');
        $table->smallInteger('isi_silinder');
        $table->string('no_rangka', 50);
        $table->string('no_mesin', 50);
        $table->string('warna', 50);
        $table->string('bahan_bakar', 50);
        $table->string('warna_tnkb', 50);
        $table->string('kode_lokasi', 50);
        $table->date('berlaku_sampai');
        $table->timestamps();

        $table->index('created_at');
        $table->index('updated_at');
    });

}

stnk 테이블에 시더를 만들었습니다.

이제 이름 idid_stnk. "작곡가""doctrine / dbal"
추가 하고 .composer update

마이그레이션했습니다 php artisan migration:make rename_column.
그런 다음 rename_column에 새 메서드를 추가했습니다.

Schema::table('stnk', function(Blueprint $table)
{
    $table->renameColumn('id', 'id_stnk');

});

그런 다음 명령을 실행하려고 시도했지만 다음 php artisan migrate과 같이 오류가 발생했습니다.

[Ulluminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1025 Error on rename of './my_database/#sql -447_33' to './my_database/stnk' (error: 150) (SQL: ALTER TABLE stnk CHANGE id id_stnk INT UNSIGENED AUTO_INCREMENT NOT NULL)

[PDOException]
SQLSTATE[HY000]: General error: 1025  Error on rename  of './my_database/#sql -447_33' to './my_database/stnk' (error: 150)

다른 마이그레이션 파일을 생성하고 여기에 배치해야합니다.

운영

Laravel 4:    php artisan migrate:make rename_stnk_column
Laravel 5:    php artisan make:migration rename_stnk_column

그런 다음 새 마이그레이션 파일 위치 내부 :

class RenameStnkColumn extends Migration
{

    public function up()
    {
        Schema::table('stnk', function(Blueprint $table) {
            $table->renameColumn('id', 'id_stnk');
        });
    }


    public function down()
    {
        Schema::table('stnk', function(Blueprint $table) {
            $table->renameColumn('id_stnk', 'id');
        });
    }

}

가장 먼저 할 일은 마이그레이션 파일을 만드는 것입니다.

명령 줄에 입력

php artisan make:migration rename_stk_column --table="YOUR TABLE" --create

파일을 만든 후. 데이터베이스 / 마이그레이션 아래의 앱 폴더에서 새로 생성 된 마이그레이션 파일을 엽니 다.

귀하의 업 메소드에 다음을 삽입하십시오.

Schema::table('stnk', function(Blueprint $table)
    {
        $table->renameColumn('id', 'id_stnk');
    });
}

그리고 당신의 다운 방법에서 :

    Schema::table('stnk', function(Blueprint $table)
    {
        $table->renameColumn('id_stnk', 'id);
    });
}

그런 다음 명령 줄에

php artisan migrate

그럼 울라! id 이름을 id_stnk로 변경했습니다. 사용할 수있는 BTW

php artisan migrate:rollback

변경 사항을 취소합니다. 행운을 빕니다


열 이름 바꾸기 (Laravel 5.x)

열의 이름을 바꾸려면 스키마 빌더에서 renameColumn 메소드를 사용할 수 있습니다. * 열 이름을 변경하기 전에 composer.json 파일에 doctrine / dbal 종속성을 추가해야 합니다. *

또는 composer를 사용하여 패키지를 간단히 요구할 수 있습니다.

composer require doctrine/dbal

출처 : https://laravel.com/docs/5.0/schema#renaming-columns

참고 : Laravel 5.x 에서는 migrate : make가 아닌 make : migration을 사용하십시오 .


Throwing my $0.02 in here since none of the answers worked, but did send me on the right path. What happened was that a previous foreign constraint was throwing the error. Obvious when you think about it.

So in your new migration's up method, first drop that original constraint, rename the column, then add the constraint again with the new column name. In the down method, you do the exact opposite so that it's back to the sold setting.

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('proxy4s', function (Blueprint $table) {
        // Drop it
        $table->dropForeign(['server_id']);

        // Rename
        $table->renameColumn('server_id', 'linux_server_id');

        // Add it
        $table->foreign('linux_server_id')->references('id')->on('linux_servers');
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('proxy4s', function (Blueprint $table) {
        // Drop it
        $table->dropForeign(['linux_server_id']);

        // Rename
        $table->renameColumn('linux_server_id', 'server_id');

        // Add it
        $table->foreign('server_id')->references('id')->on('linux_servers');
    });
}

Hope this saves someone some time in the future!


Follow these steps, respectively for rename column migration file.

1- Is there Doctrine/dbal library in your project. If you don't have run the command first

composer require doctrine/dbal

2- create update migration file for update old migration file. Warning (need to have the same name)

php artisan make:migrate update_oldFileName_table

for example my old migration file name: create_users_table update file name should : update_users_table

3- update_oldNameFile_table.php

Schema::table('users', function (Blueprint $table) {
$table->renameColumn('from', 'to');
});

'from' my old column name and 'to' my new column name

4- Finally run the migrate command

php artisan migrate

Source link: laravel document


The above answer is great or if it will not hurt you, just rollback the migration and change the name and run migration again.

 php artisan migrate:rollback

참고URL : https://stackoverflow.com/questions/26522292/how-can-i-rename-column-in-laravel-using-migration

반응형

'Programing' 카테고리의 다른 글

브라우저 닫기 이벤트 감지 시도  (0) 2020.12.11
차이점 ??  (0) 2020.12.11
Erlang 프로세스 대 Java 스레드  (0) 2020.12.11
왜“!!”  (0) 2020.12.11
구속 레이아웃 수직 정렬 중심  (0) 2020.12.11