Fix database lock from -wal and -whm files

Delete LibationContext.db-shm and LibationContext.db-wal files as part of startup routine.
This commit is contained in:
MBucari
2025-11-24 20:45:55 -07:00
parent 2bf6f7a4f2
commit 050a4867b7
2 changed files with 16 additions and 2 deletions

View File

@@ -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);
}
/// <summary>
/// Delete shared memory and write-ahead log SQLite database files which may prevent access to the database.
/// </summary>
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);
}
/// <summary>Initialize logging. Wire-up events. Run after migration</summary>
public static void RunPostMigrationScaffolding(Variety variety, Configuration config)
{

View File

@@ -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;";
}
}