mirror of
https://github.com/rancher/steve.git
synced 2025-04-27 19:05:09 +00:00
This introduces the a `WithTransaction` function, which is then used for all transactional work in Steve. Because `WithTransaction` takes care of all `Begin`s, `Commit`s and `Rollback`s, it eliminates the problem where forgotten open transactions can block all other operations (with long stalling and `SQLITE_BUSY` errors). This also: - merges together the disparate `DBClient` interfaces in one only `db.Client` interface with one unexported non-test implementation. I found this much easier to follow - refactors the transaction package in order to make it as minimal as possible, and as close to the wrapped `sql.Tx` and `sql.Stmt` functions as possible, in order to reduce cognitive load when working with this part of the codebase - simplifies tests accordingly - adds a couple of known files to `.gitignore` Credits to @tomleb for suggesting the approach: https://github.com/rancher/lasso/pull/121#pullrequestreview-2515872507
15 lines
148 B
Plaintext
15 lines
148 B
Plaintext
.DS_Store
|
|
|
|
/.dapper
|
|
/.cache
|
|
/certs
|
|
/bin
|
|
/dist
|
|
*.swp
|
|
.idea
|
|
steve
|
|
|
|
informer_object_cache.db
|
|
informer_object_cache.db-shm
|
|
informer_object_cache.db-wal
|