Study: Copy previous version of DB before all save.

This commit is contained in:
Pierre-Antoine Rouby committed 2023-07-05 10:30:51 +02:00
1 parent 94509a1638
commit d09665163f
1 file changed
+22 -1
+22 -1
View File
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
import os
import shutil
from datetime import datetime
from Model.DB import SQLModel
@@ -41,6 +42,8 @@ class Study(SQLModel):
else:
self._init_db_file(filename, is_new = False)
self._old_save_id = 0
@classmethod
def checkers(cls):
lst = [
@@ -62,9 +65,27 @@ class Study(SQLModel):
return self.status.is_saved()
def save(self):
# Save a copy of database
fdir, fname = os.path.split(self.filename)
if self._old_save_id == 0:
try:
os.makedirs(os.path.join(fdir, "__old__"))
except FileExistsError as e:
shutil.rmtree(os.path.join(fdir, "__old__"))
os.makedirs(os.path.join(fdir, "__old__"))
except Exception as e:
print(e)
fname = fname + "." + str(self._old_save_id)
filename = os.path.join(fdir, "__old__", fname)
shutil.copy(self.filename, filename)
self._old_save_id += 1
# Save
self.last_save_date = datetime.now()
self.status.save()
self._save()
self.status.save()
@property
def name(self):