同じ移行でこれを何度も行う必要がある場合は、前述の方法の別の方法です。個人的には、これにより移行に多くの柔軟性が追加されると思います。
このようdatabase/migrations
にあなたのautoloadオブジェクトに追加してくださいcomposer.json
:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories",
"database/support",
"database/migrations" // add this line
]
},
次にnamespace Database\Migrations;
、すべての移行ファイルに追加します。
次に、実行$ composer dump-autoload
してcomposer.lock
ファイルを更新します。
次に、移行のクラス名をとAlterTableWebDirectories
すると、次のようなコマンドを作成できます。
$ php artisan make:command DropAlterTableWebDirectories
そして、あなたのhandle()
メソッドにこのロジックを書いてください:
public function handle {
(new AlterTableWebDirectories)->down();
DB::raw("delete from migrations where migration like '%alter_table_web_directories%'");
}
これはまさにあなたが望むことをします。移行カウントを削除するのではなく減らす場合は、DB:raw
コマンドの変更方法を理解することができます。
このコマンドを拡張して、コマンドに引数を渡すことで、削除する移行を動的に選択できるようにすることができます。
次に、そのファイルを再度移行するために読んでいるときに、実行するだけで、そのファイルphp artisan migrate
のみが移行されます。
このプロセスにより、毎回完全な更新とシードを行わなくても、移行に特定の変更を加えることができます。
私の種子はかなり大きいので、個人的に私はそれをたくさんする必要があります。