fix: no spurious "Database locked" on startup

feat/type-attributes
Tomáš Mládek 2022-10-16 16:13:39 +02:00
parent 601831e8bb
commit 5991bd13ab
1 changed files with 6 additions and 5 deletions

View File

@ -15,7 +15,7 @@ use crate::util::hash::{b58_encode, Hash, Hashable};
use crate::util::jobs::{JobContainer, JobHandle};
use anyhow::{anyhow, Error, Result};
use chrono::prelude::*;
use diesel::r2d2::{self, ConnectionManager};
use diesel::r2d2::{self, ConnectionManager, ManageConnection};
use diesel::ExpressionMethods;
use diesel::{Connection, QueryDsl, RunQueryDsl, SqliteConnection};
use log::{debug, error, info, trace, warn};
@ -98,12 +98,9 @@ impl FsStore {
let manager = ConnectionManager::<SqliteConnection>::new(
store_dir.join("upend_vault.sqlite3").to_str().unwrap(),
);
let pool = r2d2::Pool::builder()
.connection_customizer(Box::new(ConnectionOptions {}))
.build(manager)?;
let connection = pool.get()?;
// while diesel doesn't support multiple embedded migrations...
let connection = manager.connect()?;
connection.execute(
r#"
CREATE TABLE IF NOT EXISTS files
@ -123,6 +120,10 @@ impl FsStore {
"#,
)?;
let pool = r2d2::Pool::builder()
.connection_customizer(Box::new(ConnectionOptions {}))
.build(manager)?;
let lock = Arc::new(RwLock::new(()));
debug!("FS store created.");