there was a bug with the automatic table creation that would only show itself when using foreign keys and the first table was already created, but the second one wasn't (see test_transaction_nested_fail_2). This was only a problem within a transaction, you would add a row to table 1, and then try and add a row to table 2 with a value from the just inserted table 1, but the table 2 insert would fail, and rollback to before table 1 had the row inserted, this would then cause a foreign key integrity error when table 2 was created and the insert was tried again. The solution turned out to be turning on autocommit and taking transactions 100% manual, Prom had already been written with this in mind, but now it's official