diff --git a/README.md b/README.md index 26413e0..b07f216 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/rails/rollback-a-specific-migration-out-of-order.md b/rails/rollback-a-specific-migration-out-of-order.md new file mode 100644 index 0000000..8670516 --- /dev/null +++ b/rails/rollback-a-specific-migration-out-of-order.md @@ -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)