As PostgreSQL supports transactional DDL we should automatically wrap all migrations in transactions (or perhaps make it customisable using an option)