forgejo/models
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
..
actions Refactor locale&string&template related code (#29165) 2024-02-16 15:20:52 +01:00
activities [MODERATION] Refactor excluding watchers mechanism (squash) 2024-02-05 15:56:58 +01:00
admin Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
asymkey [GITEA] Add noreply email address as verified for SSH signed Git commits 2024-02-05 16:09:40 +01:00
auth [GITEA] Fix session generation for database 2024-02-05 16:09:41 +01:00
avatars Refactor some legacy code and remove unused code (#28622) 2023-12-28 09:38:59 +00:00
db feat(xorm): add max idle time setting for db connections (#2418) 2024-02-21 12:17:16 +00:00
dbfs make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
fixtures Merge branch 'rebase-forgejo-dependency' into wip-forgejo 2024-02-05 18:58:23 +01:00
forgejo/semver [SEMVER] store SemVer in ForgejoSemVer after a database upgrade 2024-02-05 14:44:33 +01:00
forgejo_migrations [GITEA] Allow changing the repo Wiki branch to main 2024-02-05 16:57:47 +01:00
git Refactor locale&string&template related code (#29165) 2024-02-16 15:20:52 +01:00
issues Fix gitea-action user avatar broken on edited menu (#29190) 2024-02-17 23:24:31 +01:00
migrations Merge branch 'rebase-forgejo-dependency' into wip-forgejo 2024-02-05 18:58:23 +01:00
organization Remove unused KeyID. (#29167) 2024-02-16 15:20:52 +01:00
packages Fix some RPM registry flaws (#28782) 2024-01-19 11:37:10 +00:00
perm [GITEA] Optionally allow anyone to edit Wikis 2024-02-05 16:09:42 +01:00
project Fix comment permissions (#28213) 2023-11-25 17:21:21 +00:00
pull [GITEA] GetScheduledMergeByPullID may involve a system user 2024-02-05 16:09:41 +01:00
repo Add merge style fast-forward-only (#28954) 2024-02-14 17:19:19 +01:00
secret Use db.Find instead of writing methods for every object (#28084) 2023-11-24 03:49:41 +00:00
shared/types Refactor locale&string&template related code (#29165) 2024-02-16 15:20:52 +01:00
system Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
unit Add a direct link from repo header to unit settings 2024-02-13 22:42:09 +01:00
unittest [gitea] Remove unnecessary parameter (#29092) 2024-02-10 10:53:43 +01:00
user Remove unused KeyID. (#29167) 2024-02-16 15:20:52 +01:00
webhook Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
error.go Add merge style fast-forward-only (#28954) 2024-02-14 17:19:19 +01:00
fixture_generation.go Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
fixture_test.go Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
main_test.go make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
org.go Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
org_team.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
org_team_test.go Reduce usage of db.DefaultContext (#27073) 2023-09-14 17:09:32 +00:00
org_test.go Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
repo.go Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
repo_test.go Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
repo_transfer.go [MODERATION] User blocking 2024-02-05 15:56:45 +01:00
repo_transfer_test.go [MODERATION] User blocking 2024-02-05 15:56:45 +01:00