feat(serv): 初始化数据库连接并集成SeaORM

- 添加 SeaORM 依赖并配置工作区共享
- 替换原有的 r2d2 数据库连接池实现
- 实现异步数据库初始化函数 init_database
- 在主函数中初始化数据库并注入应用上下文
- 移除旧的 sqlite 模块和相关路由配置文件
- 更新日志模块引用并增强环境变量打印测试
- 新增运行时信息打印工具模块 progress_running_info
- 调整模块结构,移除冗余的 router 模块定义
- 修正单元测试模块引用路径及内容适配新架构
This commit is contained in:
hz
2025-12-05 18:24:50 +08:00
parent bb01f99fc0
commit 144d13a1e9
15 changed files with 53 additions and 47 deletions

View File

@@ -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)
}
}
}