[feature] Add db-postgres-connection-string option (#3178)

* handle db-url

* lint and add doc

* add more doc

* fix config test

* return error

* change name from db-url to db-postgres-connection-string
This commit is contained in:
John Winston
2024-08-08 13:00:19 +01:00
committed by GitHub
parent b19cfee7ae
commit 94c615d417
6 changed files with 70 additions and 13 deletions

View File

@@ -44,6 +44,12 @@ grant all privileges on database gotosocial to gotosocial;
GoToSocial makes use of ULIDs (Universally Unique Lexicographically Sortable Identifiers) which will not work in non-English collate environments. For this reason it is important to create the database with `C.UTF-8` locale. To do that on systems which were already initialized with non-C locale, `template0` pristine database template must be used.
If you want to use specific options when connecting to Postgres, you can use `db-postgres-connection-string` to define the connection string. If `db-postgres-connection-string` is defined, all other database related configuration fields will be ignored. For example, we can use `db-postgres-connection-string` to connect to `mySchema`, where the user name is `myUser` and password is `myPass` at `localhost` with the database name of `db`:
```yaml
db-postgres-connection-string: 'postgres://myUser:myPass@localhost/db?search_path=mySchema'
```
## Settings
!!! danger "SQLite cache sizes"
@@ -177,6 +183,14 @@ db-sqlite-cache-size: "8MiB"
# Default: "30m"
db-sqlite-busy-timeout: "30m"
# String. Full Database connection string
#
# This connection string is only applicable for Postgres. When this field is defined, all other database related configuration field will be ignored. This field allow you to fine tune connection with Postgres
#
# Examples: ["postgres://user:pass@localhost/db?search_path=gotosocial", "postgres://user:pass@localhost:9999/db"]
# Default: ""
db-postgres-connection-string: ""
cache:
# cache.memory-target sets a target limit that
# the application will try to keep it's caches