Export/Database: Do not delete import source files

This commit is contained in:
2026-09-16 17:12:52 +02:00
parent abf06c558f
commit 15e191d74e
+7 -3
View File
@@ -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);
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);
}