diff --git a/Source/AppScaffolding/LibationScaffolding.cs b/Source/AppScaffolding/LibationScaffolding.cs
index 3e1d0696..b6ee8b1e 100644
--- a/Source/AppScaffolding/LibationScaffolding.cs
+++ b/Source/AppScaffolding/LibationScaffolding.cs
@@ -90,6 +90,7 @@ namespace AppScaffolding
{
config.LoadPersistentSettings(config.LibationFiles.SettingsFilePath);
}
+ DeleteOpenSqliteFiles(config);
AudibleApiStorage.EnsureAccountsSettingsFileExists();
//
@@ -102,6 +103,19 @@ namespace AppScaffolding
Migrations.migrate_to_v12_0_1(config);
}
+ ///
+ /// Delete shared memory and write-ahead log SQLite database files which may prevent access to the database.
+ ///
+ private static void DeleteOpenSqliteFiles(Configuration config)
+ {
+ var walFile = SqliteStorage.DatabasePath + "-wal";
+ var shmFile = SqliteStorage.DatabasePath + "-shm";
+ if (File.Exists(walFile))
+ FileManager.FileUtility.SaferDelete(walFile);
+ if (File.Exists(shmFile))
+ FileManager.FileUtility.SaferDelete(shmFile);
+ }
+
/// Initialize logging. Wire-up events. Run after migration
public static void RunPostMigrationScaffolding(Variety variety, Configuration config)
{
diff --git a/Source/LibationFileManager/SqliteStorage.cs b/Source/LibationFileManager/SqliteStorage.cs
index 88fae1f1..e324f9b2 100644
--- a/Source/LibationFileManager/SqliteStorage.cs
+++ b/Source/LibationFileManager/SqliteStorage.cs
@@ -5,7 +5,7 @@ namespace LibationFileManager
public static class SqliteStorage
{
// not customizable. don't move to config
- private static string databasePath => Path.Combine(Configuration.Instance.LibationFiles.Location, "LibationContext.db");
- public static string ConnectionString => $"Data Source={databasePath};Foreign Keys=False;Pooling=False;";
+ public static string DatabasePath => Path.Combine(Configuration.Instance.LibationFiles.Location, "LibationContext.db");
+ public static string ConnectionString => $"Data Source={DatabasePath};Foreign Keys=False;Pooling=False;";
}
}