This class should be responsible for running migrations. It should be able to: - [ ] Get a list of migrations to run - [x] A list of already run migrations - [x] Calculate the order of migrations based on dependencies - [x] Check for circular dependencies - [x] Keep an execute stack while migrations are running - [ ] Roll back changes if a migration fails - [ ] Have a way to buffer/output/store messages to allow for logging
This class should be responsible for running migrations.
It should be able to: