pub struct Database { /* private fields */ }Expand description
Shared PostgreSQL database connection pool with schema initialization.
Data is isolated by app_id: each app gets its own PostgreSQL schema
(CREATE SCHEMA IF NOT EXISTS "{app_id}"), and every connection
obtained through conn() has search_path set to that
schema. Two Database instances with different app_id values
sharing the same physical database will not see each other’s tables.
Implementations§
Source§impl Database
impl Database
Sourcepub async fn connect(
connection_string: &str,
app_id: &str,
) -> RustvelloResult<Self>
pub async fn connect( connection_string: &str, app_id: &str, ) -> RustvelloResult<Self>
Create a new database from a connection string.
The connection string should be in the format:
host=localhost user=postgres password=secret dbname=rustvello
or a URI: postgres://user:pass@host/dbname
The app_id is used to create a dedicated PostgreSQL schema so
that multiple applications can share the same database without
interference.
Note: This method uses NoTls, so all data is sent in cleartext.
For encrypted connections, use connect_tls()
(requires the tls feature) or from_pool()
with a custom pool configuration.
Sourcepub async fn connect_with_pool_size(
connection_string: &str,
app_id: &str,
max_size: Option<usize>,
) -> RustvelloResult<Self>
pub async fn connect_with_pool_size( connection_string: &str, app_id: &str, max_size: Option<usize>, ) -> RustvelloResult<Self>
Like connect() but with a configurable maximum pool size.
When max_size is None, deadpool’s default (CPU count × 4) is used.
Sourcepub async fn from_pool(pool: Pool, app_id: &str) -> RustvelloResult<Self>
pub async fn from_pool(pool: Pool, app_id: &str) -> RustvelloResult<Self>
Create a database from an existing deadpool pool.