1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-02 22:58:01 +00:00

Add Rollback A Specific Migration Out Of Order as a Rails migration

This commit is contained in:
jbranchaud
2021-03-11 16:58:21 -06:00
parent 406cd29676
commit f5328c55d0
2 changed files with 24 additions and 1 deletions

View File

@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
For a steady stream of TILs, [sign up for my newsletter](https://tinyletter.com/jbranchaud).
_1081 TILs and counting..._
_1082 TILs and counting..._
---
@@ -698,6 +698,7 @@ _1081 TILs and counting..._
- [Render The Response Body In Controller Specs](rails/render-the-response-body-in-controller-specs.md)
- [Rescue From](rails/rescue-from.md)
- [Retrieve An Object If It Exists](rails/retrieve-an-object-if-it-exists.md)
- [Rollback A Specific Migration Out Of Order](rails/rollback-a-specific-migration-out-of-order.md)
- [Rounding Numbers With Precision](rails/rounding-numbers-with-precision.md)
- [Schedule Sidekiq Jobs Out Into The Future](rails/schedule-sidekiq-jobs-out-into-the-future.md)
- [Secure Passwords With Rails And Bcrypt](rails/secure-passwords-with-rails-and-bcrypt.md)

View File

@@ -0,0 +1,22 @@
# Rollback A Specific Migration Out Of Order
If you want to rollback the latest migration that is `up`, you can use:
```bash
$ rails db:rollback
```
It deals explicitly with the latest `up` migration and nothing else. Even if
you name a specific `VERSION`, it will still just rollback the one latest.
Instead, if you want to target a specific past migration for rollback, you'll
want the `db:migrate:down` command. You'll need to specify the version, which
is the timestamp number in the filename of the migration.
Here is what this looks like for a recent migration I had to rollback.
```bash
$ rails db:migrate:down VERSION=20210302171858
```
[source](https://stackoverflow.com/a/3647820/535590)