blob: 1094233d1472ba4cf4ac89eef3c1f88c99243627 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
use std::str::FromStr;
use diesel::pg::PgConnection;
use diesel::r2d2::ConnectionManager;
use diesel::r2d2::Pool;
pub type DbPool = Pool<ConnectionManager<PgConnection>>;
pub fn establish_connection() -> DbPool {
let database_url = std::env::var("DATABASE_URL")
.expect("DATABASE_URL must be set");
let pool_max_size = std::env::var("DATABASE_MAX_CONNECTIONS")
.as_ref()
.map(|s| u32::from_str(s))
.expect("DATABASE_URL must be set")
.expect("Failed to parse string into integer for DATABASE_MAX_CONNECTIONS");
let manager = diesel::r2d2::ConnectionManager::new(&database_url);
diesel::r2d2::Pool::builder()
.max_size(pool_max_size)
.build(manager)
.expect(&format!("Error connection to {}", database_url))
}
|