From 6c21c20c1ffa1b7ba89f880ef9b2d6037bf0d8b2 Mon Sep 17 00:00:00 2001 From: amtoaer Date: Sun, 31 Mar 2024 13:52:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E5=9C=A8=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E5=90=AF=E5=8A=A8=E6=97=B6=E6=89=A7=E8=A1=8C=20migrat?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/database.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/database.rs b/src/database.rs index a8d1163..68c7220 100644 --- a/src/database.rs +++ b/src/database.rs @@ -1,6 +1,21 @@ +use migration::{Migrator, MigratorTrait}; use sea_orm::{Database, DatabaseConnection}; +use tokio::fs; use crate::Result; pub async fn database_connection() -> Result { - Ok(Database::connect("sqlite://./data.sqlite?mode=rwc").await?) + let config_dir = dirs::config_dir().ok_or("No config path found")?; + let target = config_dir.join("bili-sync").join("data.sqlite"); + if let Some(parent) = target.parent() { + fs::create_dir_all(parent).await?; + } + Ok(Database::connect(format!( + "sqlite://{}?mode=rwc", + config_dir.join("bili-sync").join("data.sqlite").to_str().unwrap() + )) + .await?) +} + +pub async fn migrate_database(connection: &DatabaseConnection) -> Result<()> { + Ok(Migrator::up(connection, None).await?) }