Difference between rake db:migrate db:reset and db:schema:load

The difference between rake db:migrate and rake db:reset is pretty clear in my head. The thing which I don’t understand is how rake db:schema:load different from the former two.

Just to be sure that I am on the same page:

  • rake db:migrate - Runs the migrations which haven’t been run yet.
  • rake db:reset - Clears the database (presumably does a rake db:drop + rake db:create + rake db:migrate ) and runs migration on a fresh database.

Please help to clarify, if my understanding has gone wrong.