[][src]Struct sqlx::postgres::PgConnectOptions

pub struct PgConnectOptions { /* fields omitted */ }
This is supported on crate feature postgres only.

Options and flags which can be used to configure a PostgreSQL connection.

A value of PgConnectOptions can be parsed from a connection URI, as described by libpq.

The general form for a connection URI is:

postgresql://[user[:password]@][host][:port][/dbname][?param1=value1&...]

Parameters

ParameterDefaultDescription
sslmodepreferDetermines whether or with what priority a secure SSL TCP/IP connection will be negotiated. See PgSqlSslMode.
sslrootcertNoneSets the name of a file containing a list of trusted SSL Certificate Authorities.
statement-cache-capacity100The maximum number of prepared statements stored in the cache. Set to 0 to disable.
hostNonePath to the directory containing a PostgreSQL unix domain socket, which will be used instead of TCP if set.
hostaddrNoneSame as host, but only accepts IP addresses.
application-nameNoneThe name will be displayed in the pg_stat_activity view and included in CSV log entries.
userresult of whoamiPostgreSQL user name to connect as.
passwordNonePassword to be used if the server demands password authentication.
port5432Port number to connect to at the server host, or socket file name extension for Unix-domain connections.
dbnameNoneThe database name.

The URI scheme designator can be either postgresql:// or postgres://. Each of the URI parts is optional.

postgresql://
postgresql://localhost
postgresql://localhost:5433
postgresql://localhost/mydb
postgresql://user@localhost
postgresql://user:secret@localhost
postgresql://localhost?dbname=mydb&user=postgres&password=postgres

Example

// URI connection string
let conn = PgConnection::connect("postgres://localhost/mydb").await?;

// Manually-constructed options
let conn = PgConnectOptions::new()
    .host("secret-host")
    .port(2525)
    .username("secret-user")
    .password("secret-password")
    .ssl_mode(PgSslMode::Require)
    .connect().await?;

Implementations

impl PgConnectOptions[src]

pub fn new() -> PgConnectOptions[src]

Creates a new, default set of options ready for configuration.

By default, this reads the following environment variables and sets their equivalent options.

  • PGHOST
  • PGPORT
  • PGUSER
  • PGPASSWORD
  • PGDATABASE
  • PGSSLROOTCERT
  • PGSSLMODE
  • PGAPPNAME

Example

let options = PgConnectOptions::new();

pub fn host(self, host: &str) -> PgConnectOptions[src]

Sets the name of the host to connect to.

If a host name begins with a slash, it specifies Unix-domain communication rather than TCP/IP communication; the value is the name of the directory in which the socket file is stored.

The default behavior when host is not specified, or is empty, is to connect to a Unix-domain socket

Example

let options = PgConnectOptions::new()
    .host("localhost");

pub fn port(self, port: u16) -> PgConnectOptions[src]

Sets the port to connect to at the server host.

The default port for PostgreSQL is 5432.

Example

let options = PgConnectOptions::new()
    .port(5432);

pub fn socket(self, path: impl AsRef<Path>) -> PgConnectOptions[src]

Sets a custom path to a directory containing a unix domain socket, switching the connection method from TCP to the corresponding socket.

By default set to None.

pub fn username(self, username: &str) -> PgConnectOptions[src]

Sets the username to connect as.

Defaults to be the same as the operating system name of the user running the application.

Example

let options = PgConnectOptions::new()
    .username("postgres");

pub fn password(self, password: &str) -> PgConnectOptions[src]

Sets the password to use if the server demands password authentication.

Example

let options = PgConnectOptions::new()
    .username("root")
    .password("safe-and-secure");

pub fn database(self, database: &str) -> PgConnectOptions[src]

Sets the database name. Defaults to be the same as the user name.

Example

let options = PgConnectOptions::new()
    .database("postgres");

pub fn ssl_mode(self, mode: PgSslMode) -> PgConnectOptions[src]

Sets whether or with what priority a secure SSL TCP/IP connection will be negotiated with the server.

By default, the SSL mode is Prefer, and the client will first attempt an SSL connection but fallback to a non-SSL connection on failure.

Ignored for Unix domain socket communication.

Example

let options = PgConnectOptions::new()
    .ssl_mode(PgSslMode::Require);

pub fn ssl_root_cert(self, cert: impl AsRef<Path>) -> PgConnectOptions[src]

Sets the name of a file containing SSL certificate authority (CA) certificate(s). If the file exists, the server's certificate will be verified to be signed by one of these authorities.

Example

let options = PgConnectOptions::new()
    // Providing a CA certificate with less than VerifyCa is pointless
    .ssl_mode(PgSslMode::VerifyCa)
    .ssl_root_cert("./ca-certificate.crt");

pub fn statement_cache_capacity(self, capacity: usize) -> PgConnectOptions[src]

Sets the capacity of the connection's statement cache in a number of stored distinct statements. Caching is handled using LRU, meaning when the amount of queries hits the defined limit, the oldest statement will get dropped.

The default cache capacity is 100 statements.

pub fn application_name(self, application_name: &str) -> PgConnectOptions[src]

Sets the application name. Defaults to None

Example

let options = PgConnectOptions::new()
    .application_name("my-app");

Trait Implementations

impl Clone for PgConnectOptions[src]

impl ConnectOptions for PgConnectOptions[src]

type Connection = PgConnection

impl Debug for PgConnectOptions[src]

impl Default for PgConnectOptions[src]

impl From<PgConnectOptions> for AnyConnectOptions[src]

impl FromStr for PgConnectOptions[src]

type Err = Error

The associated error which can be returned from parsing.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,