#[macro_use] extern crate diesel; #[macro_use] extern crate diesel_codegen; extern crate dotenv; extern crate r2d2_diesel; extern crate r2d2; use diesel::pg::PgConnection; use r2d2_diesel::ConnectionManager; use dotenv::dotenv; use std::env; // An alias to the type for a pool of Diesel PostgreSql connections. type Pool = r2d2::Pool>; /// Initializes a database pool. pub fn init_db_pool() -> Pool { dotenv().ok(); let config = r2d2::Config::default(); let dburl = env::var("DATABASE_URL") .expect("DATABASE_URL environment variable must be set"); let manager = ConnectionManager::::new(dburl); r2d2::Pool::new(config, manager).expect("db pool") }