50 releases
| 0.0.67 | Nov 27, 2025 |
|---|---|
| 0.0.65 | Oct 11, 2025 |
| 0.0.59 | Jul 30, 2025 |
| 0.0.50 | Mar 24, 2025 |
| 0.0.13 | Mar 28, 2024 |
#1889 in Database interfaces
520 downloads per month
Used in 2 crates
18KB
229 lines
Quick Microservices PostgreSQL - qm-pg
utilities to work with the PostgreSQL database
Description
With this crate it is easy to get a PostgreSQL configuration with the most common settings.
Usage
let pgdb = qm::pg::DB::new("example", &qm::pg::DbConfig::new()?).await?;
The Config is populated with environment variables. By default, all variables with the prefix
PG_ are considered.
The prefix can be changed by using a builder pattern.
let example_config = qm::pg::DbConfig::builder().with_prefix("EXAMPLE_").build()?;
Variables and Defaults
These variables are available and are set with the following defaults.
| variable | struct field | default |
|---|---|---|
| PG_HOST | host | "127.0.0.1" |
| PG_PORT | port | 5432 |
| PG_MAX_CONNECTIONS | max_connections | 32 |
| PG_MIN_CONNECTIONS | min_connections | 0 |
| PG_ACQUIRE_TIMEOUT | acquire_timeout | 30 |
| PG_IDLE_TIMEOUT | idle_timeout | 10 * 60 |
| PG_MAX_LIFETIME | max_lifetime | 30 * 60 |
| PG_USERNAME | username | |
| PG_PASSWORD | password | |
| PG_DATABASE | database | |
| PG_ROOT_USERNAME | root_username | |
| PG_ROOT_PASSWORD | root_password | |
| PG_ROOT_DATABASE | root_database | |
| PG_SHARDED | sharded | false |
| address | With credentials: postgresql://{username}:{password}@{host}:{port}/;With username: postgresql://{username}@{host}:{port}/;Without: postgresql://{host}:{port}/;If provided, database will be appended |
|
| root_address | With credentials: postgresql://{root_username}:{root_password}@{host}:{port}/;With username: postgresql://{root_username}@{host}:{port}/;Without: postgresql://{host}:{port}/;If provided, root_database will be appended |
Dependencies
~47–64MB
~1M SLoC