Do migrations run in a transaction by default?
The docs don't confirm one way or the other whether
migration up can leave the database in a partially migrated state if an error occurs in the migration.