migrate
Applies every migration this database has not run, in version order.
Refuses before touching anything where the migrations and the history disagree - see MigrationStatus for what each disagreement is called and MigrationException for what is raised.
Return
What was applied, read back from the history table. Empty where the database was already up to date, which is worth logging as much as any other outcome.
Throws
for anything that stops the run.