2017-03-09 15 views
0

多くの移行を行っている大きなプロジェクトに取り組んでいます。テーブルに列を追加したいのですが、1つのテーブルに対して複数の移行を維持したくありません。どうやってやるの?移行する方法はありますか?1回の移行だけをリフレッシュしますか?laravelで特定の移行を削除/更新する方法

答えて

2

マイグレーションは、それぞれが以前のものに依存する可能性があるため、順次実行するように設計されていると思います。

例えば、移動#1は、そのテーブルにいくつかの余分なフィールドを追加することができ、テーブルと移行#2を作成することができます。 #1を実行せずにマイグレーション#2を実行しようとすると、失敗します。

あなたは職人の移行を実行すると、それだけであなたが移行を使用しない限り、既に適用されていないマイグレーションを実行します:それはすべてのマイグレーションをリセットし、再実行します更新した場合には。

移行を1回実行するだけでデッドセットが発生した場合は、を移動したくないすべての移行を一時的に削除して、ディレクトリからを実行して、移行コマンドを実行します。その後、残りの部分を戻します。それは、ハックの回避策ですが、それはトリックを行うだろう。

私も最高のあなたに合うかもしれないと思うONE MORE選択肢があります:

php artisan migrate --path=/database/migrations/selected/ 

希望の移行が(あなたが作成する必要があります)/選択/ディレクトリ内ですが。これは、他のテーブルに干渉する新しい列を使用してテーブルを更新していないだろうphp artisan migrate

Schema::table('users', function (Blueprint $table) { $table->string('additional_field'); });

し、実行:

0

新しい新しい列を追加する予定の移行、すなわちを作成することができます。

関連する問題