feat: 统一数据库和migration系统

This commit is contained in:
杨明明 2025-08-08 18:39:55 +08:00
parent ba121dfb3b
commit e9be3199ea
1 changed files with 40 additions and 30 deletions

View File

@ -25,26 +25,35 @@ impl ComfyUIRepository {
} }
/// 获取数据库连接 /// 获取数据库连接
fn get_connection(&self) -> Result<std::sync::MutexGuard<Connection>> { fn get_connection(&self) -> Arc<std::sync::Mutex<Connection>> {
let conn = self.database.get_connection(); self.database.get_connection()
conn.lock().map_err(|e| anyhow!("获取数据库连接失败: {}", e)) }
/// 执行数据库操作的辅助方法
fn with_connection<F, R>(&self, f: F) -> Result<R>
where
F: FnOnce(&Connection) -> Result<R>,
{
let conn = self.get_connection();
let conn = conn.lock().map_err(|e| anyhow!("获取数据库连接失败: {}", e))?;
f(&*conn)
} }
/// 初始化数据库表现在通过主数据库的migration系统处理 /// 初始化数据库表现在通过主数据库的migration系统处理
pub fn initialize(&self) -> Result<()> { pub fn initialize(&self) -> Result<()> {
// ComfyUI表现在通过主数据库的migration系统创建 // ComfyUI表现在通过主数据库的migration系统创建
// 这里只需要确保连接可用 // 这里只需要确保连接可用
let _conn = self.get_connection()?; self.with_connection(|_conn| {
info!("ComfyUI 数据仓库初始化完成"); info!("ComfyUI 数据仓库初始化完成");
Ok(()) Ok(())
})
} }
// ==================== 工作流相关操作 ==================== // ==================== 工作流相关操作 ====================
/// 创建工作流 /// 创建工作流
pub fn create_workflow(&self, workflow: &WorkflowModel) -> Result<()> { pub fn create_workflow(&self, workflow: &WorkflowModel) -> Result<()> {
let conn = self.get_connection()?; self.with_connection(|conn| {
let workflow_data_json = serde_json::to_string(&workflow.workflow_data)?; let workflow_data_json = serde_json::to_string(&workflow.workflow_data)?;
let tags_json = serde_json::to_string(&workflow.tags)?; let tags_json = serde_json::to_string(&workflow.tags)?;
@ -67,6 +76,7 @@ impl ComfyUIRepository {
debug!("创建工作流: {}", workflow.id); debug!("创建工作流: {}", workflow.id);
Ok(()) Ok(())
})
} }
/// 获取工作流 /// 获取工作流