beam-automigrate
beam-automigrate copied to clipboard
Improve transaction usage in beam-automigrate
[x] Plan migration in the same transaction as the attempted execution [x] Expose attempted migration without transaction so user can embed it in their own [] unmangle the haddocks [] make the README literate example not rely on unsafe stuff
At first, all I wanted to do was make sure that the main entry points were obviously guarded by a transaction, and expose unsafe entry points for the user to incorporate into their own larger migration logic (which should definitely be in a transaction). However, the top-level module was very large and sprawling, and I had to tease apart the functionality that didn't interact with the DB, and the part that did, so that I could make sure I didn't miss anything. So it goes.