2016-12-19 15 views
1

私の移行は、このようなものです:データタイプを変更し、データを失うことなくマイグレーションで列を追加する方法は? (laravel 5.3)

public function up() 
{ 
    Schema::create('tests', function (Blueprint $table) { 
     $table->increments('id_test'); 
     $table->string('name', 50); 
     $table->timestamps(); 
     $table->softDeletes(); 
    }); 
} 

public function down() 
{ 
    Schema::drop('tests'); 
} 

私は、データ型を変更して、テーブルのテスト中に列を追加します。データベース内のテーブルを更新します。私のように編集します。その後、私は実行

public function up() 
{ 
    Schema::create('tests', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('id_test', 18); 
     $table->string('name', 50); 
     $table->timestamps(); 
     $table->softDeletes(); 
    }); 
} 

public function down() 
{ 
    Schema::drop('tests'); 
} 

php artisan migrate:refresh

私はデータベース

に私のデータを失ったことは私を助けることができるすべての人々がありますか?

+2

を参照してください。単純:*新しい*移行を作成します。古いものは編集しないでください。新しい列を 'up()'メソッドに追加し、 'down()'メソッドでそれを削除してください。次に、変更を実行するために 'php artisan migrate'だけが行います。 'php artisan migrate:ロールバック'を使ってそれを逆転させます。 – maiorano84

+2

マイグレーションの詳細については、[非常に詳しいドキュメントを読む](https://laravel.com/docs/5.3/migrations) – maiorano84

答えて

2

コマンドの下に使用して、新しい移行ファイルを作成します。

php artisan make:migration name_of_your_file 

、その機能は、この

public function up() 
     { 
      Schema::table('tests', function($table) { 
        $table->renameColumn('id_test', 'id'); 
        $table->string('id_test', 18); 
      }); 
     } 


    public function down() 
     { 
      Schema::table('tests', function($table) { 
       $table->dropColumn('id_test'); 
      }); 
     } 

今だけのコマンドの下に実行

php artisan migrate 

ノートのようにする必要があります:いけないの使用refreshデータを削除します

Laravel移行の詳細については、https://laravel.com/docs/5.3/migrations#modifying-columns

+0

と思われます。これを見てください:http://stackoverflow.com/questions/41788737/why-the-deleted-data-still-appear-in-the-interface –

関連する問題