@@ -10,6 +10,7 @@ use spin_factors::{
10
10
anyhow:: { self , Context as _} ,
11
11
runtime_config:: toml:: GetTomlValue ,
12
12
} ;
13
+ use spin_sqlite_inproc:: InProcDatabaseLocation ;
13
14
use spin_world:: v2:: sqlite as v2;
14
15
use tokio:: sync:: OnceCell ;
15
16
@@ -108,10 +109,7 @@ impl DefaultLabelResolver for RuntimeConfigResolver {
108
109
. as_deref ( )
109
110
. map ( |p| p. join ( DEFAULT_SQLITE_DB_FILENAME ) ) ;
110
111
let factory = move || {
111
- let location = match & path {
112
- Some ( path) => spin_sqlite_inproc:: InProcDatabaseLocation :: Path ( path. clone ( ) ) ,
113
- None => spin_sqlite_inproc:: InProcDatabaseLocation :: InMemory ,
114
- } ;
112
+ let location = InProcDatabaseLocation :: from_path ( path. clone ( ) ) ?;
115
113
let connection = spin_sqlite_inproc:: InProcConnection :: new ( location) ?;
116
114
Ok ( Box :: new ( connection) as _ )
117
115
} ;
@@ -202,17 +200,11 @@ impl LocalDatabase {
202
200
///
203
201
/// `base_dir` is the base directory path from which `path` is resolved if it is a relative path.
204
202
fn connection_creator ( self , base_dir : & Path ) -> anyhow:: Result < impl ConnectionCreator > {
205
- let location = match self . path {
206
- Some ( path) => {
207
- let path = resolve_relative_path ( & path, base_dir) ;
208
- // Create the store's parent directory if necessary
209
- // unwrapping the parent is fine, because `resolve_relative_path`` will always return a path with a parent
210
- std:: fs:: create_dir_all ( path. parent ( ) . unwrap ( ) )
211
- . context ( "Failed to create sqlite database directory" ) ?;
212
- spin_sqlite_inproc:: InProcDatabaseLocation :: Path ( path)
213
- }
214
- None => spin_sqlite_inproc:: InProcDatabaseLocation :: InMemory ,
215
- } ;
203
+ let path = self
204
+ . path
205
+ . as_ref ( )
206
+ . map ( |p| resolve_relative_path ( p, base_dir) ) ;
207
+ let location = InProcDatabaseLocation :: from_path ( path) ?;
216
208
let factory = move || {
217
209
let connection = spin_sqlite_inproc:: InProcConnection :: new ( location. clone ( ) ) ?;
218
210
Ok ( Box :: new ( connection) as _ )
0 commit comments