pop
pop copied to clipboard
Support for `TxOptions` when creating a transaction
Description
After checking the documentation, it doesn't appear that pop
supports creating a transaction with TxOptions
. I ran into this discovery after finding a need to explicitly set the IsolationLevel
in Postgres.
If this feature is supported, it would be nice if it were more clearly documented, since it would appear to differ from the standard APIs for configuring these options.
Steps to Reproduce the Problem
- Attempted to find a way to specify
TxOptions
using code discovery tools, autocompletion - Looked in the documentation to see if there was a different way to specify said options.
- Couldn't find anything, so posted in the #buffalo slack channel.
Expected Behavior
When invoking either pop.Connection.NewTransaction
or pop.ConnectionTransaction(fn)
, I would expect to be able to provide TxOptions
.
Actual Behavior
When invoking either pop.Connection.NewTransaction
or pop.ConnectionTransaction(fn)
, I am unable to provide TxOptions
.
Info
- I am using Pop through Buffalo
- Buffalo version 1.17.3 via Docker image:
gobuffalo/buffalo:v0.17.3-slim
I found this in a merged PR. https://github.com/gobuffalo/pop/pull/594/files
However, this forces the programmer to deal with a lower level API, making it hard to integrate with the ORM functionality provided by pop.Connection
.
Is there not a simpler way to specify transaction options?
Looking at the following in connection.go
, I see how one could easily expose the transaction options using the feature provided in #594. I will work on testing a solution.