refuseTransactionControl
Refuses a script that opens, commits or rolls back a transaction of its own.
This is the check the server would never make. Under a transactional migration the run has a transaction open and puts the history row in it; a COMMIT in the middle of the file ends that transaction, and the row recording the migration lands outside it - so the file half-applied would be recorded as applied whole. Without a transaction it is no better: a BEGIN there wraps the rest of the file, which is the one thing the file asked not to happen.
Throws
INVALID_MIGRATION naming the statement and where it is.