wrap schema changes in transaction