diff options
Diffstat (limited to 'src/db/connection.rs')
-rw-r--r-- | src/db/connection.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/db/connection.rs b/src/db/connection.rs index cf9a0c0..76d38c1 100644 --- a/src/db/connection.rs +++ b/src/db/connection.rs @@ -19,6 +19,7 @@ use getset::Getters; use log::debug; use crate::config::Configuration; +use crate::util::progress::ProgressBars; #[derive(Getters)] pub struct DbConnectionConfig<'a> { @@ -78,7 +79,7 @@ impl<'a> DbConnectionConfig<'a> { }) } - pub fn establish_connection(self) -> Result<PgConnection> { + pub fn establish_connection(self, progressbars: &ProgressBars) -> Result<PgConnection> { debug!("Trying to connect to database: {:?}", self); let database_uri: String = format!( "postgres://{user}:{password}@{host}:{port}/{name}?connect_timeout={timeout}", @@ -89,7 +90,17 @@ impl<'a> DbConnectionConfig<'a> { name = self.database_name, timeout = self.database_connection_timeout, ); - PgConnection::establish(&database_uri).map_err(Error::from) + + let bar = progressbars.spinner(); + bar.set_message("Establishing database connection"); + + let conn = PgConnection::establish(&database_uri).map_err(Error::from); + if conn.is_err() { + bar.finish_with_message("Connection could not be established"); + } else { + bar.finish_with_message("Connection established"); + } + conn } } |