feat: scaffold AI image desktop MVP
This commit is contained in:
29
src-tauri/src/db/mod.rs
Normal file
29
src-tauri/src/db/mod.rs
Normal file
@@ -0,0 +1,29 @@
|
||||
use std::fs;
|
||||
|
||||
use sqlx::{sqlite::SqliteConnectOptions, SqlitePool};
|
||||
use tauri::{AppHandle, Manager};
|
||||
|
||||
use crate::AppError;
|
||||
|
||||
pub mod models;
|
||||
pub mod repository;
|
||||
|
||||
pub async fn init(app: &AppHandle) -> Result<SqlitePool, AppError> {
|
||||
let app_data_dir = app.path().app_data_dir()?;
|
||||
fs::create_dir_all(&app_data_dir)?;
|
||||
|
||||
let database_path = app_data_dir.join("image_draw_ai.sqlite");
|
||||
let options = SqliteConnectOptions::new()
|
||||
.filename(database_path)
|
||||
.create_if_missing(true);
|
||||
let pool = SqlitePool::connect_with(options).await?;
|
||||
|
||||
for statement in include_str!("../../migrations/001_init.sql").split(';') {
|
||||
let statement = statement.trim();
|
||||
if !statement.is_empty() {
|
||||
sqlx::query(statement).execute(&pool).await?;
|
||||
}
|
||||
}
|
||||
|
||||
Ok(pool)
|
||||
}
|
||||
Reference in New Issue
Block a user