sylvia_iot_broker/models/sqlite/
conn.rs

1use std::error::Error as StdError;
2use std::str::FromStr;
3
4use log::LevelFilter;
5use sqlx::{sqlite::SqliteConnectOptions, ConnectOptions, SqlitePool};
6
7/// SQLite connection options.
8pub struct Options {
9    /// SQLite database file path. Use absolute/relative path.
10    pub path: String,
11}
12
13/// Connect to SQLite.
14pub async fn connect(options: &Options) -> Result<SqlitePool, Box<dyn StdError>> {
15    let opts = SqliteConnectOptions::from_str(&options.path)?
16        .create_if_missing(true)
17        .log_statements(LevelFilter::Off);
18    let result = SqlitePool::connect_with(opts).await?;
19    Ok(result)
20}