Compare commits

..

7 Commits

Author SHA1 Message Date
Gustavo Henrique Santos Souza de Miranda c3397ab982 Remove the wrong error message and made the program exit if no session is found 2025-07-24 19:36:12 -03:00
Gustavo Henrique Miranda bb9457978c
Update src/pilgrim/service/backup_service.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-07-24 19:31:13 -03:00
Gustavo Henrique Santos Souza de Miranda c09425cd48 Merge remote-tracking branch 'origin/feat/backup-database' into feat/backup-database 2025-07-24 19:23:59 -03:00
Gustavo Henrique Miranda 7c950b93ab
Update src/pilgrim/ui/screens/diary_list_screen.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-07-24 19:23:40 -03:00
Gustavo Henrique Santos Souza de Miranda 17371088da Changed the way it uses the database connection to be more robust 2025-07-24 19:21:47 -03:00
Gustavo Henrique Santos Souza de Miranda 209099cc5e Add a error handling on backup operation 2025-07-24 19:05:55 -03:00
Gustavo Henrique Santos Souza de Miranda 890fc470bb Change the filename variable to conform to the proper pathlike use 2025-07-24 19:00:04 -03:00
2 changed files with 15 additions and 7 deletions

View File

@ -14,9 +14,12 @@ class BackupService:
db_path = DirectoryManager.get_database_path()
if not db_path.exists():
raise FileNotFoundError("No Database Found")
conn = self.session.connection().connection
dump = "\n".join(line for line in conn.iterdump())
filename = str(DirectoryManager.get_config_directory()) + "/backup.zip"
with self.session.connection() as conn:
raw_conn = conn.connection
dump = "\n".join(line for line in raw_conn.iterdump())
filename = DirectoryManager.get_config_directory() / "backup.zip"
diaries_root_path = DirectoryManager.get_diaries_root()
try:
@ -27,7 +30,7 @@ class BackupService:
if file_path.is_file():
arcname = file_path.relative_to(diaries_root_path.parent)
zipf.write(file_path, arcname=arcname)
return True, None
return True, filename
except Exception as e:
return False, str(e)

View File

@ -306,7 +306,12 @@ class DiaryListScreen(Screen):
session = self.app.service_manager.get_session()
if session:
backup_service = BackupService(session)
result = backup_service.create_backup()
result_operation, result_data = backup_service.create_backup()
if result_operation:
self.notify(f"Backup result: {result_data}")
else:
self.notify(f"Error performing backup: {result_data}")
else:
self.notify("You must be logged in to perform this action")
self.notify(f"Backup result: {result}")
self.notify("Error: Session not found",severity="error")
self.app.exit()