From 9bed5aab1239d9902e9282965dd2cdf58cea72b0 Mon Sep 17 00:00:00 2001 From: Nathan Perry Date: Sat, 11 May 2024 18:08:05 -0400 Subject: db: fixup a few trailing issues --- src/db/mod.rs | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) (limited to 'src/db/mod.rs') diff --git a/src/db/mod.rs b/src/db/mod.rs index 5aa0541..336f1f9 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -1,6 +1,7 @@ use std::{ convert::AsRef, env, + str::FromStr, }; use anyhow::anyhow; @@ -40,28 +41,31 @@ use self::schema::*; mod models; mod schema; -const MIGRATIONS: diesel_async_migrations::EmbeddedMigrations = +static MIGRATIONS: diesel_async_migrations::EmbeddedMigrations = diesel_async_migrations::embed_migrations!(); -static MIGRATE: tokio::sync::OnceCell<()> = tokio::sync::OnceCell::new(); lazy_static::lazy_static! { + static ref MIGRATE: tokio::sync::OnceCell<()> = tokio::sync::OnceCell::new(); + static ref DB_URL: String = env::var("DATABASE_URL").expect("no database url in environment"); static ref POOL: Pool = { + println!("{}", *DB_URL); let cfg = AsyncDieselConnectionManager::new(DB_URL.clone()); - - let pool = Pool::builder(cfg).build().unwrap(); - - pool + Pool::builder(cfg).build().unwrap() }; static ref RAW_CONN_MGR: RawPgConnMgr = { - deadpool_postgres::Config::new() - .builder(tokio_postgres::NoTls).expect("failed to init config") - .config(PoolConfig::new(8)) - .build().expect("failed to build pool") + let pg_conf = tokio_postgres::Config::from_str(&DB_URL).expect("parsing db url"); + let mgr_conf = deadpool_postgres::ManagerConfig { + recycling_method: deadpool_postgres::RecyclingMethod::Fast, + }; + + let mgr = deadpool_postgres::Manager::from_config(pg_conf, tokio_postgres::NoTls, mgr_conf); + + RawPgConnMgr::builder(mgr).config(PoolConfig::new(8)).build().expect("failed to build pool") }; } @@ -123,7 +127,7 @@ pub async fn query_meme>( user_id: Option, age_desc: bool, ) -> Result> { - let mut raw_conn = raw_connection().await?; + let raw_conn = raw_connection().await?; let search = format!("%{}%", search.as_ref()); @@ -277,8 +281,10 @@ pub async fn rare_meme(conn: &mut AsyncPgConnection, audio: bool) -> Result Result { .await .map_err(Error::from)?; - let mut raw_conn = raw_connection().await?; + let raw_conn = raw_connection().await?; let row = raw_conn .query_one( -- cgit v1.3.1