aboutsummaryrefslogtreecommitdiffstats
path: root/src/remote/database.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/remote/database.rs')
-rw-r--r--src/remote/database.rs16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/remote/database.rs b/src/remote/database.rs
index ddcffda0..03973ca1 100644
--- a/src/remote/database.rs
+++ b/src/remote/database.rs
@@ -1,5 +1,6 @@
use diesel::pg::PgConnection;
use diesel::prelude::*;
+use eyre::{eyre, Result};
use crate::settings::Settings;
@@ -7,8 +8,15 @@ use crate::settings::Settings;
pub struct AtuinDbConn(diesel::PgConnection);
// TODO: connection pooling
-pub fn establish_connection(settings: &Settings) -> PgConnection {
- let database_url = &settings.server.db_uri;
- PgConnection::establish(database_url)
- .unwrap_or_else(|_| panic!("Error connecting to {}", database_url))
+pub fn establish_connection(settings: &Settings) -> Result<PgConnection> {
+ if settings.server.db_uri == "default_uri" {
+ Err(eyre!(
+ "Please configure your database! Set db_uri in config.toml"
+ ))
+ } else {
+ let database_url = &settings.server.db_uri;
+ let conn = PgConnection::establish(database_url)?;
+
+ Ok(conn)
+ }
}