title: Run alembic upgrade migrations in a transaction
body: <p>Does <code>alembic upgrade head</code> run inside a transaction so that all database alterations succeed, or fail? If not, why was it designed this way?</p>