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 --- Cargo.lock | 1 + Cargo.toml | 2 +- src/db/mod.rs | 34 ++++++++++++++++++++-------------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b21c3be..a4e7e87 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1575,6 +1575,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c" dependencies = [ "bytes", + "chrono", "fallible-iterator", "postgres-protocol", ] diff --git a/Cargo.toml b/Cargo.toml index 24a046c..fa9aac5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,7 +48,7 @@ symphonia = { version = "0.5", features = ["all"] } diesel = { version = "2.1", features = ["chrono"], optional = true } diesel-async = { version = "0.4", optional = true, features = ["deadpool", "postgres"] } diesel_async_migrations = { version = "0.12", optional = true } -tokio-postgres = { version = "0.7", optional = true } +tokio-postgres = { version = "0.7", optional = true, features = ["with-chrono-0_4"] } deadpool-postgres = { version = "0.13", optional = true } [dependencies.serenity] 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