User asked why we don't do this and I didn't have a great answer. Let's do the table creation and alembic writes all in one big transaction.
(There is still some jankiness from the fact that we share alembic configs between the three different storage classes - ideally there would be some way to do the full table creation all in one transaction, but this is still an improvement I think)