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.2
Copyright
Rollpie, Irohabook
Publisher
math
Published
2026-09-14
Size
80.1 KB
Downloads
1
Checksum
65387e928cd11d6abf76cfb0f7a839dd3b2b7bb9cdbe78e7b058d3213d9fbcc2
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}"))
}