forgejo/models/db
Michael Kriese 849de07064 feat(xorm): add max idle time setting for db connections (#2418)
Add a new optional `CONN_MAX_IDLETIME`[^1]

This allows to set the `SetConnMaxIdleTime` on `database/sql`.
It's useful to allow to close more idle connections to reduce database connections, especially on postgresql.
For me i would like to use it to set a higher max idle connections but they will all be closed after being idle.
So also the last idle connection will be closed when there is no load on forgejo.
I also use it with max connection lifetime, because currently `database/sql` doesn't detect a postgresql master change[^2] and i'll get `[E] can't update runner status: pq: cannot execute UPDATE in a read-only transaction`[^3] on forgejo until the connection is closed.

[^1]: https://pkg.go.dev/database/sql#DB.SetConnMaxIdleTime
[^2]: https://stackoverflow.com/questions/51858659/how-to-safely-discard-golang-database-sql-pooled-connections-for-example-when-t
[^3]: https://matrix.to/#/!zpNKWqkiEOyljSMQDK:matrix.org/$_AJft_amsGn5hXGOYw75JoBJQnW3aKJEpb-Iw53L_TU?via=schinas.net&via=matrix.org&via=nitro.chat

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/2418
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Co-committed-by: Michael Kriese <michael.kriese@visualon.de>
2024-02-21 12:17:16 +00:00
..
install
paginator Move more functions to db.Find (#28419) 2024-01-15 02:19:25 +00:00
collation.go Recommend/convert to use case-sensitive collation for MySQL/MSSQL (#28662) 2024-01-10 11:03:23 +00:00
common.go
consistency.go
context.go Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
context_committer_test.go
context_test.go
convert.go Recommend/convert to use case-sensitive collation for MySQL/MSSQL (#28662) 2024-01-10 11:03:23 +00:00
engine.go feat(xorm): add max idle time setting for db connections (#2418) 2024-02-21 12:17:16 +00:00
engine_test.go [TESTS] add log.Level to test.NewLogChecker 2024-02-05 16:54:44 +01:00
error.go Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
index.go
index_test.go
iterate.go refactor: make db iterate context aware (#27710) 2023-10-21 10:05:29 +08:00
iterate_test.go Remove GetByBean method because sometimes it's danger when query condition parameter is zero and also introduce new generic methods (#28220) 2023-12-07 15:27:36 +08:00
list.go Fix joins in db.Find(AndCount) (#28978) 2024-01-30 02:37:24 +00:00
list_test.go Use db.Find instead of writing methods for every object (#28084) 2023-11-24 03:49:41 +00:00
log.go
main_test.go make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
name.go
search.go
sequence.go
sql_postgres_with_schema.go