Skip to content

Commit

Permalink
Backup settings.db before migrations. By @AdwaitSalankar (#1848)
Browse files Browse the repository at this point in the history
  • Loading branch information
AdwaitSalankar authored Nov 24, 2023
1 parent 98b6462 commit c9f170a
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/vorta/store/connection.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import os
import shutil
from datetime import datetime, timedelta

from peewee import Tuple, fn
from playhouse import signals

from vorta import config
from vorta.autostart import open_app_at_startup

from .migrations import run_migrations
Expand Down Expand Up @@ -83,6 +85,7 @@ def init_db(con=None):
if created or current_schema.version == SCHEMA_VERSION:
pass
else:
backup_current_db(current_schema.version)
run_migrations(current_schema, con)

# Create missing settings and update labels.
Expand All @@ -98,3 +101,13 @@ def init_db(con=None):
s.tooltip = setting['tooltip']

s.save()


def backup_current_db(schema_version):
"""
Creates a backup copy of settings.db
"""

timestamp = datetime.now().strftime('%Y-%m-%d-%H%M%S')
backup_file_name = f'settings_v{schema_version}_{timestamp}.db'
shutil.copy(config.SETTINGS_DIR / 'settings.db', config.SETTINGS_DIR / backup_file_name)

0 comments on commit c9f170a

Please sign in to comment.