Export/Database: Do not delete import source files
This commit is contained in:
@@ -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) {
|
if (zipFile) {
|
||||||
var newName = Path.ChangeExtension(App.Config.DatabaseFile, ".new.sqlite3");
|
var newName = Path.ChangeExtension(App.Config.DatabaseFile, ".new.sqlite3");
|
||||||
try {
|
try {
|
||||||
@@ -221,7 +221,7 @@ namespace Elwig.Helpers.Export {
|
|||||||
foreach (var entry in zip.Entries) {
|
foreach (var entry in zip.Entries) {
|
||||||
if (entry.Name.EndsWith(".sqlite3")) {
|
if (entry.Name.EndsWith(".sqlite3")) {
|
||||||
entry.ExtractToFile(newName);
|
entry.ExtractToFile(newName);
|
||||||
await ImportSqlite(newName);
|
await ImportSqlite(newName, keepSource: false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -233,7 +233,11 @@ namespace Elwig.Helpers.Export {
|
|||||||
|
|
||||||
var oldName = Path.ChangeExtension(App.Config.DatabaseFile, ".old.sqlite3");
|
var oldName = Path.ChangeExtension(App.Config.DatabaseFile, ".old.sqlite3");
|
||||||
File.Move(App.Config.DatabaseFile, oldName, true);
|
File.Move(App.Config.DatabaseFile, oldName, true);
|
||||||
|
if (keepSource) {
|
||||||
|
File.Copy(filename, App.Config.DatabaseFile, false);
|
||||||
|
} else {
|
||||||
File.Move(filename, App.Config.DatabaseFile, false);
|
File.Move(filename, App.Config.DatabaseFile, false);
|
||||||
|
}
|
||||||
|
|
||||||
using var cnx = await AppDbContext.ConnectAsync();
|
using var cnx = await AppDbContext.ConnectAsync();
|
||||||
await cnx.ExecuteBatch("VACUUM");
|
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")) {
|
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 cnx.ExecuteBatch(await reader.ReadToEndAsync());
|
||||||
}
|
}
|
||||||
await ImportSqlite(newName);
|
await ImportSqlite(newName, keepSource: false);
|
||||||
} finally {
|
} finally {
|
||||||
if (File.Exists(newName)) File.Delete(newName);
|
if (File.Exists(newName)) File.Delete(newName);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user