I was just too lazy to separate this.
So should I make three methods ?
1) Base method with all the code from here.
2) "do it for real" method that calls the base method then `migrate` at the end
3) "simulate" method that calls the base method then `checkMigrate` at the end ?

Or we could just have a method that returns the migrator and/or the schema ?