Compare commits

...

2 Commits

4 changed files with 29 additions and 4 deletions

View File

@ -37,6 +37,8 @@ logger = logging.getLogger()
class Study(SQLModel):
_version = "0.2.0"
_sub_classes = [
Scenario,
River,
@ -44,7 +46,6 @@ class Study(SQLModel):
def __init__(self, filename=None, init_new=True):
# Metadata
self._version = "0.2.0"
self.creation_date = datetime.now()
self.last_modification_date = datetime.now()
self.last_save_date = datetime.now()

View File

@ -127,6 +127,7 @@ class TableModel(PamhyrTableModel):
)
self.endRemoveRows()
self.update()
def sort(self, _reverse, parent=QModelIndex()):
self.layoutAboutToBeChanged.emit()

View File

@ -31,7 +31,7 @@ from platformdirs import user_cache_dir
from Solver.AdisTS import AdisTS
from Solver.Mage import Mage8
from tools import logger_exception
from tools import logger_exception, pamhyr_db_need_update
from PyQt5 import QtGui
from PyQt5.QtGui import (
@ -1087,10 +1087,13 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
dialog.setDirectory(os.path.dirname(self.conf.last_study))
if dialog.exec_():
file_name = dialog.selectedFiles()
file_name = dialog.selectedFiles()[0]
if pamhyr_db_need_update(file_name, Study._version):
shutil.copyfile(file_name, file_name + ".old")
def fn():
self._tmp_study = Study.open(file_name[0])
self._tmp_study = Study.open(file_name)
dlg = WaitingDialog(
payload_fn=fn,

View File

@ -19,6 +19,7 @@
import os
import time
import logging
import sqlite3
import traceback
from datetime import datetime, timedelta
@ -456,3 +457,22 @@ def _parse_word_up_to_next_sep(words, sep=" "):
rest = words[i+1:]
return word, rest
######
# DB #
######
def pamhyr_db_need_update(db_file, expected_version):
db = sqlite3.connect(db_file, check_same_thread=False)
cur = db.cursor()
data = cur.execute(
"SELECT value FROM info WHERE key='version'"
).fetchall()
db.close()
if len(data) == 0:
return True
return expected_version != data[0]