마이그레이션을 사용하여 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 테이블에 시더를 만들었습니다.
이제 이름 id
을 id_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 |