From 15e191d74e1bb57cd52fb4b4e7947b6e7a1df8e9 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Wed, 16 Sep 2026 17:12:52 +0200 Subject: [PATCH] Export/Database: Do not delete import source files --- Elwig/Helpers/Export/Database.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Elwig/Helpers/Export/Database.cs b/Elwig/Helpers/Export/Database.cs index ea21980..c78c4ac 100644 --- a/Elwig/Helpers/Export/Database.cs +++ b/Elwig/Helpers/Export/Database.cs @@ -212,7 +212,7 @@ namespace Elwig.Helpers.Export { } } - public static async Task ImportSqlite(string filename, bool zipFile = false) { + public static async Task ImportSqlite(string filename, bool zipFile = false, bool keepSource = true) { if (zipFile) { var newName = Path.ChangeExtension(App.Config.DatabaseFile, ".new.sqlite3"); try { @@ -221,7 +221,7 @@ namespace Elwig.Helpers.Export { foreach (var entry in zip.Entries) { if (entry.Name.EndsWith(".sqlite3")) { entry.ExtractToFile(newName); - await ImportSqlite(newName); + await ImportSqlite(newName, keepSource: false); return; } } @@ -233,7 +233,11 @@ namespace Elwig.Helpers.Export { var oldName = Path.ChangeExtension(App.Config.DatabaseFile, ".old.sqlite3"); File.Move(App.Config.DatabaseFile, oldName, true); - File.Move(filename, App.Config.DatabaseFile, false); + if (keepSource) { + File.Copy(filename, App.Config.DatabaseFile, false); + } else { + File.Move(filename, App.Config.DatabaseFile, false); + } using var cnx = await AppDbContext.ConnectAsync(); await cnx.ExecuteBatch("VACUUM"); @@ -246,7 +250,7 @@ namespace Elwig.Helpers.Export { using (var cnx = await AppDbContext.ConnectAsync($"Data Source=\"{newName}\"; Mode=ReadWriteCreate; Foreign Keys=False; Cache=Default; Pooling=False")) { await cnx.ExecuteBatch(await reader.ReadToEndAsync()); } - await ImportSqlite(newName); + await ImportSqlite(newName, keepSource: false); } finally { if (File.Exists(newName)) File.Delete(newName); }