From cb29fc74db87f75c2be96b9c81dffe0deb1df4b6 Mon Sep 17 00:00:00 2001 From: olexiyb Date: Thu, 13 Jun 2024 21:21:26 +0300 Subject: [PATCH] upgrade to V16 for example --- examples/example.rs | 8 ++++---- src/pg_access.rs | 19 +++++++++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/examples/example.rs b/examples/example.rs index a5a395a..9dc294f 100644 --- a/examples/example.rs +++ b/examples/example.rs @@ -1,5 +1,5 @@ use pg_embed::pg_enums::PgAuthMethod; -use pg_embed::pg_fetch::{PgFetchSettings, PG_V13}; +use pg_embed::pg_fetch::{PgFetchSettings, PG_V16}; use pg_embed::postgres::{PgEmbed, PgSettings}; use sqlx_tokio::postgres::PgPoolOptions; use std::error::Error; @@ -11,8 +11,8 @@ async fn main() -> Result<(), Box> { // Postgresql settings let pg_settings = PgSettings { // Where to store the postgresql database - database_dir: PathBuf::from("data/db"), - cache_dir: None, + database_dir: PathBuf::from("data").join("db"), + cache_dir: Some(PathBuf::from("data").join("cache")), port: 5432, user: "postgres".to_string(), password: "password".to_string(), @@ -32,7 +32,7 @@ async fn main() -> Result<(), Box> { // Postgresql binaries download settings let fetch_settings = PgFetchSettings { - version: PG_V13, + version: PG_V16, ..Default::default() }; diff --git a/src/pg_access.rs b/src/pg_access.rs index 115edbb..4225220 100644 --- a/src/pg_access.rs +++ b/src/pg_access.rs @@ -66,8 +66,16 @@ impl PgAccess { cache_dir: Option<&PathBuf>, ) -> Result { let cache_dir = match cache_dir { - Some(d) => d.clone(), - None => Self::create_cache_dir_structure(&fetch_settings).await?, + Some(d) => { + std::fs::create_dir_all(&d) + .map_err(|e| PgEmbedError { + error_type: PgEmbedErrorType::DirCreationError, + source: Some(Box::new(e)), + message: None, + })?; + d.clone() + }, + None => Self::create_cache_dir_structure(&fetch_settings)?, }; Self::create_db_dir_structure(database_dir).await?; @@ -104,7 +112,7 @@ impl PgAccess { /// /// Returns PathBuf(cache_directory) on success, an error otherwise /// - async fn create_cache_dir_structure(fetch_settings: &PgFetchSettings) -> PgResult { + fn create_cache_dir_structure(fetch_settings: &PgFetchSettings) -> PgResult { let cache_dir = dirs::cache_dir().ok_or_else(|| PgEmbedError { error_type: PgEmbedErrorType::InvalidPgUrl, source: None, @@ -127,13 +135,12 @@ impl PgAccess { ); let mut cache_pg_embed = cache_dir.clone(); cache_pg_embed.push(pg_path); - tokio::fs::create_dir_all(&cache_pg_embed) + std::fs::create_dir_all(&cache_pg_embed) .map_err(|e| PgEmbedError { error_type: PgEmbedErrorType::DirCreationError, source: Some(Box::new(e)), message: None, - }) - .await?; + })?; Ok(cache_pg_embed) }