From e44bd988930babed7de59d78ad570b1b0a6e1cf0 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 1 Oct 2017 22:01:02 +0200 Subject: Connect to database pool when igniting. --- src/main.rs | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 03966fc..9e29a52 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,14 +2,42 @@ #![plugin(rocket_codegen)] extern crate rocket; +#[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. +fn init_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") +} #[get("/")] fn index() -> &'static str { - "Hello, for faen!" + "Hallo, for faen!" } fn main() { rocket::ignite() + .manage(init_pool()) .mount("/", routes![index]) .launch(); } -- cgit v1.2.3