mirror of https://gitlab.com/pamhyr/pamhyr2
Study: Copy previous version of DB before all save.
parent
94509a1638
commit
d09665163f
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in New Issue