From 7dbca66b2f6f83a2a002696a16da390b1496ca3d Mon Sep 17 00:00:00 2001 From: laoXong Date: Wed, 22 Oct 2025 13:39:29 +0900 Subject: [PATCH] Add: Sqlite Connect Options --- src/main.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4eeea20..9459d32 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,6 +11,7 @@ use log::info; use sqlx::sqlite::SqlitePool; use std::collections::HashMap; use std::env; +use std::str::FromStr; use std::sync::Arc; use tokio::net::TcpListener; use tokio::sync::{RwLock, broadcast}; @@ -27,9 +28,18 @@ async fn main() -> Result<()> { // 数据库初始化 let db_path = env::var("DB_PATH").unwrap_or_else(|_| DEFAULT_DB_PATH.to_string()); - let db_url = format!("sqlite://{}", db_path); - let pool = SqlitePool::connect(&db_url).await?; - info!("Database pool connected successfully to {}", db_url); + let pool = sqlx::sqlite::SqlitePoolOptions::new() + .max_connections(100) + .acquire_timeout(std::time::Duration::from_secs(30)) + .connect_with( + sqlx::sqlite::SqliteConnectOptions::new() + .filename(&db_path) + .create_if_missing(true) + .foreign_keys(true) + .journal_mode(sqlx::sqlite::SqliteJournalMode::Wal), + ) + .await?; + info!("Database pool connected successfully to {}", db_path); database::init_database(&pool).await?; // 使用 database 模块的函数 let pool = Arc::new(pool); // 将 SqlitePool 包裹在 Arc 中,以便多线程共享 info!("Connected to SQLite");