Registry / RepositoryTypeScriptRustPython
Rollpie
ReadmeFiles
Versions
Info
Download
0.1.280.1 KB2026-09-140.1.167.6 KB2026-09-140.1.064.9 KB2026-09-14
Version
0.1.1
Copyright
Rollpie, Irohabook
Publisher
math
Published
2026-09-14
Size
67.6 KB
Downloads
2
Checksum
1394ade0d23f53c562acdce1e27a9c4c559f73c22d104e84c7c03c6b2fcc47b0
Dependencies
None

database.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//! SQLite の接続プールを作る

use anyhow::Context;
use sqlx::SqlitePool;
use sqlx::sqlite::{SqliteConnectOptions, SqliteJournalMode, SqlitePoolOptions};
use std::str::FromStr;


/// 接続プールを作る。表の用意は使う側と [`crate::session::prepare`] が行う
pub async fn connect(url: &str) -> anyhow::Result<SqlitePool> {
    // WAL にしないと、書き込みのあいだ読み込みまで止まる。sqlx は既定でここを触らない
    let options = SqliteConnectOptions::from_str(url)
        .with_context(|| format!("DATABASE_URL={url} を SQLite の場所として読めません"))?
        .create_if_missing(true)
        .journal_mode(SqliteJournalMode::Wal);

    SqlitePoolOptions::new()
        .max_connections(8)
        .connect_with(options)
        .await
        .with_context(|| format!("SQLite につながりません: {url}"))
}