Skip to content

Commit e6ee6cc

Browse files
wsxiaoyspochi-agentautofix-ci[bot]
authored
fix(db): improve connection pool configuration for database creation (#4350)
Co-authored-by: Pochi <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
1 parent eabca77 commit e6ee6cc

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

ee/tabby-db/src/lib.rs

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::{path::Path, sync::Arc};
1+
use std::{path::Path, sync::Arc, time::Duration};
22

33
use anyhow::anyhow;
44
pub use attachment::{
@@ -21,7 +21,11 @@ pub use pages::{PageDAO, PageSectionDAO};
2121
pub use provided_repositories::ProvidedRepositoryDAO;
2222
pub use repositories::RepositoryDAO;
2323
pub use server_setting::ServerSettingDAO;
24-
use sqlx::{query, query_scalar, sqlite::SqliteQueryResult, Pool, Sqlite, SqlitePool};
24+
use sqlx::{
25+
query, query_scalar,
26+
sqlite::{SqlitePoolOptions, SqliteQueryResult},
27+
Pool, Sqlite, SqlitePool,
28+
};
2529
pub use threads::{ThreadDAO, ThreadMessageDAO};
2630
use tokio::sync::Mutex;
2731
use user_completions::UserCompletionDailyStatsDAO;
@@ -115,17 +119,13 @@ fn make_pagination_query_with_condition(
115119
impl DbConn {
116120
#[cfg(any(test, feature = "testutils"))]
117121
pub async fn new_in_memory() -> Result<Self> {
118-
use std::{str::FromStr, time::Duration};
122+
use std::str::FromStr;
119123

120124
use sqlx::sqlite::SqlitePoolOptions;
121125

122126
let options = SqliteConnectOptions::from_str("sqlite::memory:")?;
123-
let pool: Pool<Sqlite> = SqlitePoolOptions::new()
124-
.max_connections(20)
125-
.min_connections(2)
126-
.acquire_timeout(Duration::from_secs(6))
127-
.idle_timeout(Duration::from_secs(300))
128-
.max_lifetime(Duration::from_secs(3600))
127+
let pool = SqlitePoolOptions::new()
128+
.max_connections(1)
129129
.connect_with(options)
130130
.await?;
131131
DbConn::init_db(pool).await
@@ -173,7 +173,14 @@ impl DbConn {
173173
.journal_mode(sqlx::sqlite::SqliteJournalMode::Wal)
174174
.filename(db_file)
175175
.create_if_missing(true);
176-
let pool = SqlitePool::connect_with(options).await?;
176+
let pool = SqlitePoolOptions::new()
177+
.max_connections(64)
178+
.min_connections(2)
179+
.acquire_timeout(Duration::from_secs(6))
180+
.idle_timeout(Duration::from_secs(300))
181+
.max_lifetime(Duration::from_secs(3600))
182+
.connect_with(options)
183+
.await?;
177184
Self::backup_db(db_file, &pool).await?;
178185
Self::init_db(pool).await
179186
}

0 commit comments

Comments
 (0)