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 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from Model.DB import SQLModel
|
from Model.DB import SQLModel
|
||||||
|
|
@ -41,6 +42,8 @@ class Study(SQLModel):
|
||||||
else:
|
else:
|
||||||
self._init_db_file(filename, is_new = False)
|
self._init_db_file(filename, is_new = False)
|
||||||
|
|
||||||
|
self._old_save_id = 0
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def checkers(cls):
|
def checkers(cls):
|
||||||
lst = [
|
lst = [
|
||||||
|
|
@ -62,9 +65,27 @@ class Study(SQLModel):
|
||||||
return self.status.is_saved()
|
return self.status.is_saved()
|
||||||
|
|
||||||
def save(self):
|
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.last_save_date = datetime.now()
|
||||||
self.status.save()
|
|
||||||
self._save()
|
self._save()
|
||||||
|
self.status.save()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self):
|
def name(self):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue