Laravel 프레임 워크를 사용하여 기존 데이터베이스 테이블에 새 열을 추가하는 방법을 알 수 없습니다.
다음을 사용하여 마이그레이션 파일을 편집하려고했습니다 …
<?php
public function up()
{
Schema::create('users', function ($table) {
$table->integer("paid");
});
}
터미널에서 php artisan migrate:install
및을 실행 migrate
합니다.
새 열을 어떻게 추가합니까?
답변
마이그레이션을 생성하기 위해 Artisan CLI에서 migrate : make 명령을 사용할 수 있습니다. 기존 모델과의 충돌을 피하려면 특정 이름을 사용하십시오.
라 라벨 3
php artisan migrate:make add_paid_to_users
라 라벨 5 이상 :
php artisan make:migration add_paid_to_users_table --table=users
그런 다음 Schema::table()
새 테이블을 작성하지 않고 기존 테이블에 액세스 할 때 메소드 를 사용해야합니다 . 그리고 다음과 같은 열을 추가 할 수 있습니다.
public function up()
{
Schema::table('users', function($table) {
$table->integer('paid');
});
}
롤백 옵션을 추가하는 것을 잊지 마십시오.
public function down()
{
Schema::table('users', function($table) {
$table->dropColumn('paid');
});
}
그런 다음 마이그레이션을 실행할 수 있습니다.
php artisan migrate
이것은 모두 라 라벨 3에 대한 문서에서 잘 설명되어 있습니다.
그리고 Laravel 4 / Laravel 5의 경우 :
편집하다:
$table->integer('paid')->after('whichever_column');
특정 열 뒤에이 필드를 추가 하는 데 사용 하십시오.
답변
Laravel 5.1 이상을 사용하는 향후 독자를위한 mike3875의 답변에 추가하겠습니다.
작업을 더 빨리하기 위해 다음과 같이 플래그 “–table”을 사용할 수 있습니다.
php artisan make:migration add_paid_to_users --table="users"
이것은 추가합니다 up
및 down
자동 방법의 내용 :
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
//
});
}
마찬가지로 --create["table_name"]
새 마이그레이션을 만들 때이 옵션을 사용하여 마이그레이션에 더 많은 상용구를 추가 할 수 있습니다. 작은 점이지만 많은 작업을 수행 할 때 유용합니다!
답변
Laravel 5를 사용하는 경우 명령은 다음과 같습니다.
php artisan make:migration add_paid_to_users
사물을 만들기위한 모든 명령 (컨트롤러, 모델, 마이그레이션 등)이 make:
명령 아래로 이동되었습니다 .
php artisan migrate
그래도 여전히 동일합니다.
답변
라 라벨 5.6 이상
기존 테이블에 FOREIGN KEY로 새 열을 추가하려는 경우.
다음 명령을 실행하여 새 마이그레이션을 작성하십시오. make : migration
예 :
php artisan make:migration add_store_id_to_users_table --table=users
데이터베이스 / 마이그레이션 폴더에 다음과 같은 새 마이그레이션 파일이 있습니다.
2018_08_08_093431_add_store_id_to_users_table.php (댓글 참조)
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddStoreIdToUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
// 1. Create new column
// You probably want to make the new column nullable
$table->integer('store_id')->unsigned()->nullable()->after('password');
// 2. Create foreign key constraints
$table->foreign('store_id')->references('id')->on('stores')->onDelete('SET NULL');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
// 1. Drop foreign key constraints
$table->dropForeign(['store_id']);
// 2. Drop the column
$table->dropColumn('store_id');
});
}
}
그 후 다음 명령을 실행하십시오.
php artisan migrate
어떤 이유로 든 마지막 마이그레이션을 실행 취소하려면 다음 명령을 실행하십시오.
php artisan migrate:rollback
문서 에서 마이그레이션에 대한 자세한 정보를 찾을 수 있습니다.
답변
다음 Schema::create
과 같이 초기 방법 내에 새 열을 추가 할 수 있습니다 .
Schema::create('users', function($table) {
$table->integer("paied");
$table->string("title");
$table->text("description");
$table->timestamps();
});
이미 테이블을 생성 한 경우 새 마이그레이션을 생성하고 다음 Schema::table
방법을 사용하여 해당 테이블에 열을 추가 할 수 있습니다 .
Schema::table('users', function($table) {
$table->string("title");
$table->text("description");
$table->timestamps();
});
답변
테이블에 열을 추가 한 다음 터미널에 다음과 같이 기존 마이그레이션 파일을 간단히 수정할 수 있습니다.
$ php artisan migrate:refresh
답변
이 것은 laravel 5.1에서 작동합니다.
먼저 터미널 에서이 코드를 실행하십시오.
php artisan make:migration add_paid_to_users --table=users
그 후 프로젝트 디렉토리로 이동하여 디렉토리 데이터베이스를 확장하십시오-마이그레이션 및 add_paid_to_users.php 파일을 편집 하고이 코드를 추가하십시오
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('paid'); //just add this line
});
}
그 후 터미널로 돌아가서이 명령을 실행하십시오.
php artisan migrate
이 도움을 바랍니다.