aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorFxQnLr <[email protected]>2023-10-21 21:31:02 +0200
committerGitHub <[email protected]>2023-10-21 21:31:02 +0200
commite8a8b2d33eec5da6701b04181b14de755e8b8063 (patch)
tree5cd77421900fd8ec02f05d15e6fb195f28dfceb4 /src/main.rs
parent48943e0de28b99d7f108e96b7d250bbf1a6c5a5b (diff)
parentbf1aeb7191bfaa75f1acf47c675bc68b9fac1cd8 (diff)
downloadwebol-e8a8b2d33eec5da6701b04181b14de755e8b8063.tar
webol-e8a8b2d33eec5da6701b04181b14de755e8b8063.tar.gz
webol-e8a8b2d33eec5da6701b04181b14de755e8b8063.zip
Merge pull request #4 from FxQnLr/database-init
int db in process
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs25
1 files changed, 3 insertions, 22 deletions
diff --git a/src/main.rs b/src/main.rs
index b7306ea..ce12cf6 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -3,11 +3,11 @@ use std::sync::Arc;
3use axum::{Router, routing::post}; 3use axum::{Router, routing::post};
4use axum::routing::{get, put}; 4use axum::routing::{get, put};
5use sqlx::PgPool; 5use sqlx::PgPool;
6use sqlx::postgres::PgPoolOptions;
7use time::util::local_offset; 6use time::util::local_offset;
8use tracing::{debug, info, level_filters::LevelFilter}; 7use tracing::{info, level_filters::LevelFilter};
9use tracing_subscriber::{EnvFilter, fmt::{self, time::LocalTime}, prelude::*}; 8use tracing_subscriber::{EnvFilter, fmt::{self, time::LocalTime}, prelude::*};
10use crate::config::SETTINGS; 9use crate::config::SETTINGS;
10use crate::db::init_db_pool;
11use crate::routes::device::{get_device, post_device, put_device}; 11use crate::routes::device::{get_device, post_device, put_device};
12use crate::routes::start::start; 12use crate::routes::start::start;
13 13
@@ -41,6 +41,7 @@ async fn main() {
41 info!("start webol v{}", version); 41 info!("start webol v{}", version);
42 42
43 let db = init_db_pool().await; 43 let db = init_db_pool().await;
44 sqlx::migrate!().run(&db).await.unwrap();
44 45
45 let shared_state = Arc::new(AppState { db }); 46 let shared_state = Arc::new(AppState { db });
46 47
@@ -62,23 +63,3 @@ async fn main() {
62pub struct AppState { 63pub struct AppState {
63 db: PgPool 64 db: PgPool
64} 65}
65
66async fn init_db_pool() -> PgPool {
67 #[cfg(not(debug_assertions))]
68 let db_url = SETTINGS.get_string("database.url").unwrap();
69
70 #[cfg(debug_assertions)]
71 let db_url = env::var("DATABASE_URL").unwrap();
72
73 debug!("attempt to connect dbPool to '{}'", db_url);
74
75 let pool = PgPoolOptions::new()
76 .max_connections(5)
77 .connect(&db_url)
78 .await
79 .unwrap();
80
81 info!("dbPool successfully connected to '{}'", db_url);
82
83 pool
84}