refactor: don't require setting library_dir to create a backup

This commit is contained in:
Jann Stute
2026-07-23 20:33:38 +02:00
parent c5402e6bda
commit a22482df9e
2 changed files with 9 additions and 13 deletions
+8 -12
View File
@@ -528,10 +528,7 @@ class Library:
) -> LibraryStatus:
self.engine = self.__get_engine(library_dir, in_memory, sql_filename)
logger.info(
"[Library] Opening SQLite Library",
library_dir=library_dir,
)
logger.info("[Library] Opening SQLite Library", library_dir=library_dir)
# Don't check DB version when creating new library
loaded_db_version = self.get_version(DB_VERSION_CURRENT_KEY)
@@ -562,9 +559,7 @@ class Library:
# save backup if patches will be applied
if loaded_db_version < DB_VERSION:
self.library_dir = library_dir
self.save_library_backup_to_disk()
self.library_dir = None
Library.save_library_backup_to_disk(library_dir)
# migrate DB step by step from one version to the next
# (migration_method, db_version, initial_db_version)
@@ -1859,16 +1854,17 @@ class Library:
session.rollback()
return None
def save_library_backup_to_disk(self) -> Path:
assert isinstance(self.library_dir, Path)
makedirs(str(self.library_dir / TS_FOLDER_NAME / BACKUP_FOLDER_NAME), exist_ok=True)
@staticmethod
def save_library_backup_to_disk(library_dir: Path) -> Path:
assert isinstance(library_dir, Path)
makedirs(str(library_dir / TS_FOLDER_NAME / BACKUP_FOLDER_NAME), exist_ok=True)
filename = f"ts_library_backup_{datetime.now(UTC).strftime('%Y_%m_%d_%H%M%S')}.sqlite"
target_path = self.library_dir / TS_FOLDER_NAME / BACKUP_FOLDER_NAME / filename
target_path = library_dir / TS_FOLDER_NAME / BACKUP_FOLDER_NAME / filename
shutil.copy2(
self.library_dir / TS_FOLDER_NAME / SQL_FILENAME,
library_dir / TS_FOLDER_NAME / SQL_FILENAME,
target_path,
)
+1 -1
View File
@@ -837,7 +837,7 @@ class QtDriver(DriverMixin, QObject):
logger.info("Backing Up Library...")
self.main_window.status_bar.showMessage(Translations["status.library_backup_in_progress"])
start_time = time.time()
target_path = self.lib.save_library_backup_to_disk()
target_path = Library.save_library_backup_to_disk(unwrap(self.lib.library_dir))
end_time = time.time()
self.main_window.status_bar.showMessage(
Translations.format(