pub struct Config {Show 21 fields
    pub url: Option<String>,
    pub user: Option<String>,
    pub password: Option<String>,
    pub dbname: Option<String>,
    pub options: Option<String>,
    pub application_name: Option<String>,
    pub ssl_mode: Option<SslMode>,
    pub host: Option<String>,
    pub hosts: Option<Vec<String>>,
    pub hostaddr: Option<IpAddr>,
    pub hostaddrs: Option<Vec<IpAddr>>,
    pub port: Option<u16>,
    pub ports: Option<Vec<u16>>,
    pub connect_timeout: Option<Duration>,
    pub keepalives: Option<bool>,
    pub keepalives_idle: Option<Duration>,
    pub target_session_attrs: Option<TargetSessionAttrs>,
    pub channel_binding: Option<ChannelBinding>,
    pub load_balance_hosts: Option<LoadBalanceHosts>,
    pub manager: Option<ManagerConfig>,
    pub pool: Option<PoolConfig>,
}Expand description
Configuration object.
§Example (from environment)
By enabling the serde feature you can read the configuration using the
config crate as following:
PG__HOST=pg.example.com
PG__USER=john_doe
PG__PASSWORD=topsecret
PG__DBNAME=example
PG__POOL__MAX_SIZE=16
PG__POOL__TIMEOUTS__WAIT__SECS=5
PG__POOL__TIMEOUTS__WAIT__NANOS=0#[derive(serde::Deserialize, serde::Serialize)]
struct Config {
    pg: deadpool_postgres::Config,
}
impl Config {
    pub fn from_env() -> Result<Self, config::ConfigError> {
        let mut cfg = config::Config::builder()
           .add_source(config::Environment::default().separator("__"))
           .build()?;
           cfg.try_deserialize()
    }
}Fields§
§url: Option<String>Initialize the configuration by parsing the URL first.
Note: All the other options override settings defined
by the URL except for the host and hosts options which
are additive!
user: Option<String>§password: Option<String>§dbname: Option<String>§options: Option<String>§application_name: Option<String>§ssl_mode: Option<SslMode>§host: Option<String>This is similar to Config::hosts but only allows one host to be
specified.
Unlike tokio_postgres::Config this structure differentiates between
one host and more than one host. This makes it possible to store this
configuration in an environment variable.
hosts: Option<Vec<String>>§hostaddr: Option<IpAddr>§hostaddrs: Option<Vec<IpAddr>>§port: Option<u16>This is similar to Config::ports but only allows one port to be
specified.
Unlike tokio_postgres::Config this structure differentiates between
one port and more than one port. This makes it possible to store this
configuration in an environment variable.
ports: Option<Vec<u16>>§connect_timeout: Option<Duration>§keepalives: Option<bool>§keepalives_idle: Option<Duration>§target_session_attrs: Option<TargetSessionAttrs>§channel_binding: Option<ChannelBinding>§load_balance_hosts: Option<LoadBalanceHosts>§manager: Option<ManagerConfig>Manager configuration.
pool: Option<PoolConfig>Pool configuration.
Implementations§
Source§impl Config
 
impl Config
Sourcepub fn new() -> Config
 
pub fn new() -> Config
Create a new Config instance with default values. This function is
identical to Config::default().
Sourcepub fn create_pool<T>(
    &self,
    runtime: Option<Runtime>,
    tls: T,
) -> Result<Pool<Manager>, CreatePoolError<ConfigError>>where
    T: MakeTlsConnect<Socket> + Clone + Sync + Send + 'static,
    <T as MakeTlsConnect<Socket>>::Stream: Sync + Send,
    <T as MakeTlsConnect<Socket>>::TlsConnect: Sync + Send,
    <<T as MakeTlsConnect<Socket>>::TlsConnect as TlsConnect<Socket>>::Future: Send,
 
pub fn create_pool<T>(
    &self,
    runtime: Option<Runtime>,
    tls: T,
) -> Result<Pool<Manager>, CreatePoolError<ConfigError>>where
    T: MakeTlsConnect<Socket> + Clone + Sync + Send + 'static,
    <T as MakeTlsConnect<Socket>>::Stream: Sync + Send,
    <T as MakeTlsConnect<Socket>>::TlsConnect: Sync + Send,
    <<T as MakeTlsConnect<Socket>>::TlsConnect as TlsConnect<Socket>>::Future: Send,
Sourcepub fn builder<T>(&self, tls: T) -> Result<PoolBuilder<Manager>, ConfigError>where
    T: MakeTlsConnect<Socket> + Clone + Sync + Send + 'static,
    <T as MakeTlsConnect<Socket>>::Stream: Sync + Send,
    <T as MakeTlsConnect<Socket>>::TlsConnect: Sync + Send,
    <<T as MakeTlsConnect<Socket>>::TlsConnect as TlsConnect<Socket>>::Future: Send,
 
pub fn builder<T>(&self, tls: T) -> Result<PoolBuilder<Manager>, ConfigError>where
    T: MakeTlsConnect<Socket> + Clone + Sync + Send + 'static,
    <T as MakeTlsConnect<Socket>>::Stream: Sync + Send,
    <T as MakeTlsConnect<Socket>>::TlsConnect: Sync + Send,
    <<T as MakeTlsConnect<Socket>>::TlsConnect as TlsConnect<Socket>>::Future: Send,
Creates a new PoolBuilder using this Config.
§Errors
See ConfigError and tokio_postgres::Error for details.
Sourcepub fn get_pg_config(&self) -> Result<Config, ConfigError>
 
pub fn get_pg_config(&self) -> Result<Config, ConfigError>
Returns tokio_postgres::Config which can be used to connect to
the database.
Sourcepub fn get_manager_config(&self) -> ManagerConfig
 
pub fn get_manager_config(&self) -> ManagerConfig
Returns ManagerConfig which can be used to construct a
deadpool::managed::Pool instance.
Sourcepub fn get_pool_config(&self) -> PoolConfig
 
pub fn get_pool_config(&self) -> PoolConfig
Returns deadpool::managed::PoolConfig which can be used to construct
a deadpool::managed::Pool instance.