ameingast / postgresql-simple-migration

PostgreSQL Schema Migrations for Haskell
Other
85 stars 48 forks source link

Finer-grained transaction control #40

Open clementd-fretlink opened 3 years ago

clementd-fretlink commented 3 years ago

The CLI tool wraps the whole migration sequence in a single transaction. When using the library, it's up to the user to decide whether or not to wrap the sequence in a transaction. So it's really an all-or-nothing choice: a single transaction, or none at all.

Some operations (like adding a variant to an enum type, for instance) require a commit before being usable, which prevent them from being present in a composite migration sequence (unless the whole sequence is run outside of a transaction).

From the CLI tool standpoint, I think having a simple way to choose the transaction strategy (no transaction, single transaction, per-file transaction) would be a great improvement.

From the lib standpoint this would imply having a way to optionally wrap each migration in a transaction.

clementd-fretlink commented 3 years ago

I'd be glad to open a PR on this if that makes sense to other people