feat(serv): 初始化数据库连接并集成SeaORM
- 添加 SeaORM 依赖并配置工作区共享 - 替换原有的 r2d2 数据库连接池实现 - 实现异步数据库初始化函数 init_database - 在主函数中初始化数据库并注入应用上下文 - 移除旧的 sqlite 模块和相关路由配置文件 - 更新日志模块引用并增强环境变量打印测试 - 新增运行时信息打印工具模块 progress_running_info - 调整模块结构,移除冗余的 router 模块定义 - 修正单元测试模块引用路径及内容适配新架构
This commit is contained in:
@@ -1,14 +1,15 @@
|
||||
use actix_web::web;
|
||||
use actix_web::web::Data;
|
||||
use r2d2::{Pool, State};
|
||||
use r2d2_sqlite::SqliteConnectionManager;
|
||||
use log::{info, warn};
|
||||
use sea_orm::{Database, DatabaseConnection, DbErr};
|
||||
|
||||
pub struct SqliteState {
|
||||
pool: Pool<SqliteConnectionManager>,
|
||||
}
|
||||
|
||||
pub fn init_database() -> Data<SqliteState> {
|
||||
let db = SqliteConnectionManager::file("./database.mod");
|
||||
let pool = Pool::new(db).unwrap();
|
||||
Data::new(SqliteState { pool: pool.clone() })
|
||||
pub async fn init_database() -> Result<DatabaseConnection, DbErr> {
|
||||
match Database::connect("sqlite:///home/hz/repo/hz/home-api/serv.sqlite?mode=rwc").await {
|
||||
Ok(conn) => {
|
||||
info!("数据库连接成功");
|
||||
Ok(conn)
|
||||
}
|
||||
Err(err) => {
|
||||
warn!("数据库连接失败 {}", err);
|
||||
Err(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user