一つだけロールバックしたい
間違えてCというマイグレーションファイルを作ってしまい
他のは残してCだけロールバックしたい
Ran? | Migration | Batch |
+------+------------------------------------------------+-------+
| Yes | xxxx_xx_xx_xxxxxx_create_xxxxx_table | 1 |
| Yes | xxxx_xx_xx_xxxxxx_create_xxxxxxx_xxxxxxx_table | 1 |
| Yes | xxxxx_xx_xx_xxxxxx_create_xxxx_xxxxx_table | 1 |
| Yes | xxxxx_xx_xx_xxxxxx_create_xxxxxxx_table | 1 |
| Yes | xxxxx_xx_xx_xxxxxx_create_xxxx_table | 2 |
| Yes | xxxxx_xx_xx_xxxxx_c | 3 |
+------+------------------------------------------------+-----
解決
通常のrollbackコマンドの後ろに--stepオプションをつけると
指定した数字分だけしたからロールバック可能。
php artisan migrate:rollback --step=1
するとちゃんと一つだけロールバックできるわけだ
+-----+------------------------------------------------+-------+
Ran? | Migration | Batch |
+------+------------------------------------------------+-------+
| Yes | xxxx_xx_xx_xxxxxx_create_xxxxx_table | 1 |
| Yes | xxxx_xx_xx_xxxxxx_create_xxxxxxx_xxxxxxx_table | 1 |
| Yes | xxxxx_xx_xx_xxxxxx_create_xxxx_xxxxx_table | 1 |
| Yes | xxxxx_xx_xx_xxxxxx_create_xxxxxxx_table | 1 |
| Yes | xxxxx_xx_xx_xxxxxx_create_xxxx_table | 2 |
| No |xxxxx_xx_xx_xxxxxx_c | 3 |
+------+------------------------------------------------+-----
あとは普通にファイルを削除してしまってOK。
Railsを使ってた時に何度もお世話になったこのコマンドですが、
急にど忘れしてしまったので備忘録として残します。