Commit d0966516 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

Study: Copy previous version of DB before all save.

Showing with 22 additions and 1 deletion
+22 -1
# -*- 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):
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment