Laravelでは、移行を作成するためのコマンドはあるが削除はしていないようです。
移行コマンドを作成します。
php artisan migrate:make create_users_table
移行を削除したい場合は、database/migrationsフォルダー内の対応する移行ファイルを安全に削除できますか?
移行ファイル:
2013_05_31_220658_create_users_table
誤った名前の移行を誤って作成しました(コマンド:php artisan migrate:make
)。 I 実行しなかった(php artisan migrate
)移行したので、削除することにしました。私のステップ:
app/database/migrations/my_migration_file_name.php
の下の移行ファイルを手動で削除しますcomposer dump-autoload
マイグレーションを実行した場合は(php artisan migrate
)、これを行うことができます。
a)migrate:rollback
を実行します - 最後の移行を元に戻すのが正しい方法です(Thnx @Jakobud)
b)migrate:rollback
が機能しない場合は手動で実行してください(以前のバージョンのmigrate:rollbackのバグを覚えています):
app/database/migrations/my_migration_file_name.php
の下の移行ファイルを手動で削除しますcomposer dump-autoload
移行が実行された場合(read:migrated)、移行をロールバックしてデータベーステーブルから履歴を消去する必要があります。ロールバックしたら、移行ファイルを安全に削除してから、移行を再開できます。
移行テーブルからもエントリを削除する必要があるかもしれません。
誤ってcreate_users_tableを2回作成しました。いくつかのクラスをオーバーライドし、ロールバックをErrorExceptionにしました。
あなたがする必要があるのは、vendor/composerフォルダの中のautoload_classmap.phpを見つけて、以下のような特定のコード行を探すことです
'CreateUsersTable' => $baseDir . '/app/database/migrations/2013_07_04_014051_create_users_table.php',
パスを編集します。その後、あなたのロールバックは問題ないはずです。
php artisan migrate:fresh
あなたが開発中であり、望ましい結果が最初からやり直すことであれば、仕事をするべきです。
プロダクションでは、それはおそらく望ましいことではないので、あなたは宣伝されるべきです。 (migrate:freshコマンドはデータベースからすべてのテーブルを削除してからmigrateコマンドを実行します)。
私は現在の答えに同意します、私はちょうどもう少し情報を追加したいです。
Laravel 5.3以降のバージョンに新しい機能が追加されました。これにより、単一の移行を取り消すことができます。
php artisan migrate:rollback --step=1
後、手動でdatabase/migrations/my_migration_file_name.php
の下の移行ファイルを削除します
これはあなたがマイグレーションを実行するときに素晴らしい機能です
このようにして、あなたは安全に2ステップだけで安全に移行を削除することができます
これは私のために働く:
php artisan migrate:refresh
5.5.43のレベルで