You got yourself into that pickle where you created a migration, migrated, deleted the migration, then tried to rollback. Here's how you get around it!
I've run into this pickle a few times. Here's how the story goes:
Rolling back the database doesn't work at that point. That's because Rails can't find the file of its latest migration to know which one to jump to.
I even tried rolling back multiple steps, but no luck.
If you have committed the file to your git history, you're in luck. Stash your current code, rollback, then pop your stash.
$ git add . $ git stash $ bundle exec rake db:rollback $ git stash pop
You should be good to go at this point.
If the migration file you had deleted was a new file, then you have to be a little trickier.
I've gotten around this by creating an empty migration file, migrating, then rolling back twice.
$ bundle exec rails g migration fix_rollback_error $ bundle exec rake db:migrate $ bundle exec rake db:rollback STEP=2
Then, make sure you delete the empty migration file, and be on your way!
The magic of Rails makes it easy to create simple many-to-many relationships, but I almost never use it, and here's why.
Post a message to one of your Slack channels when your Rails app encounters a 500 error.
Transitioning from one database to another, or even to a whole new database with a new adapter, can be tough. Here's an easy way to transition content.