2016-11-07 6 views
1

私はLaravelに新しいですし、私はphp artisan migrateコマンドを使用してユーザー表を作成し、列ロスの名前を変更します。その後Laravelは、すべてのデータ

Schema::create('users', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->timestamps(); 
     $table->string('username'); 
     $table->string('email'); 
     $table->string('password'); 
     $table->rememberToken(); 

    }); 

次のようにfirst_nameが、私は、スキーマを変更すると、私はちょうどusername列を変更する必要が:私は再びphp artisan migrateコマンドを実行

Schema::create('users', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->timestamps(); 
     $table->string('first_name'); 
     $table->string('email'); 
     $table->string('password'); 
     $table->rememberToken(); 
    }); 

場合、それはNothing to migrate言い、その後、どのように私は私のデータに影響を与えることなく、テーブルの構造を編集することができます..私はrollbackを使用し、私はすべてのテーブルのデータを失いますか?私はあなたが作成および登録新しい移行を、列の名前を変更するSchema::table()renameColumn()メソッドを使用する必要がありますLaravelドキュメント

答えて

3

あなたのスキーマから始めましょう。テーブル名はusersです。それにはusernameという名前の列があり、既存のデータを失うことなくfirst_nameに変更したいとします。この変更のために新しい移行を作成する必要があります。

php artian make:migration rename_columns_to_users_table --table=users 

移行ディレクトリに新しい移行ファイルが作成されます。それを開き、このようにそれを変更します。それは保存

Schema::table('users', function ($table) { 
    $table->renameColumn('username', 'first_name'); 
}); 

し、再度あなたの列名は、古いデータを失うことなく、すぐに名前が変更されます

php artisan migrate 

を実行します。あなたは今それを得ることを願っています。

あなたはここで詳細を見つける:https://laravel.com/docs/5.3/migrations#renaming-columns

+0

Thanx bro ..それは動作します。最初に '[Symfony \ Component \ Debug \ Exception \ FatalErrorException]というエラーが発生しました 'Doctrine \ DBAL \ Driver \ PDOMySql \ Driver'クラスが見つかりませんでした。" require "でcomposer.jsonを編集するだけです: "laravel/framework": "5.3。*"、 "doctrine/dbal": "〜2.3" }、 – KBK

+0

「laravel/framework」:「5.3。*」、 「Doctrine/dbal ":"〜2.3 "' lavavel v:5.3 – KBK

2

を憎む:

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

を列の名前を変更するには、スキーマビルダーにrenameColumnメソッドを使用することができます。

+0

はい私は...その後、ターミナルコマンドは何でした。私はphp artisan migrateを使用しました。それは移行するものがないと言います – KBK

+0

'composer dumpauto'で移行を登録するのを忘れたのでしょうか?すべてを正しく実行したら、 'php artisan migrate'を実行すれば、この移行が実行されます。 –

+1

Thanx ..私は 'dumpauto'を知りませんでした – KBK

関連する問題