michzimny / aktywator

Sterowanie pierniczkami Bridgemate II
GNU General Public License v2.0
1 stars 1 forks source link

Cząstkowa konwersja BWSa #15

Open emkael opened 7 years ago

emkael commented 7 years ago

Wraz z przyrostem funkcjonalności i rozwojem samego formatu BWSów, proste rozróżnienie między plikiem BM2 a plikiem, który trzeba skonwertować do BM2, nie zawsze wystarcza.

Czasem mamy do czynienia z BWSem, który już jest formatu BM2 (w tym: jest wykrywany przez Aktywator jako BM2, więc nie jest proponowana jego konwersja), a nie zawiera całej struktury, która jest niezbędna do działania programu. Na przykład, tabela Settings może nie zawierać wszystkich pól, zwłaszcza tych wprowadzanych niedawno (bo na przykład sędzia zdążył już skonwertować BWS starą wersją Aktywatora).

Może powinniśmy rozważyć stopniowy, w dużej mierze "cichy" (przezroczysty dla użytkownika) upgrade struktury BWS? Może w związku z tym również początkowa konwersja ("do BM2") może odbywać się bez wyrażenia przez użytkownika wprost zgody?
Jak często zdarzają się jeszcze użytkownicy, którzy potrzebują użyć Aktywatora, ale jednocześnie trzymać strukturę BWS w starym formacie? (I jak bardzo możliwe, że ci użytkownicy będą korzystać z jakichkolwiek aktualizacji Aktywatora, gdy funkcje, które wprowadzamy, dotyczą BM2?)

michzimny commented 7 years ago

Jawna konwersja, tj. z pytaniem użytkownika, to pozostałość historyczna. Gdy wchodziły BM2, to obawialiśmy się, że jak zwykle wszystko się będzie pierniczyło, więc użytkownik miał dostać na twarz pytanie, czy na pewno mamy mu popsuć BWS-a tak, że pewnie BM1 już go nie przetrawi.

Myślę, że dzisiaj zupelnie można od tego odejść i dodawać po cichu te tabele/kolumny, które są potrzebne.

emkael commented 7 years ago

Zrobione w: https://github.com/emkael/aktywator/releases/tag/v1.1.1-beta

emkael commented 6 years ago

Cząstkowa konwersja sprawia, że otwarcie pliku BWS, który jest aktualnie używany, trwa długo. Obecnie konwersja wygląda mniej więcej tak:

try {
   'CREATE TABLE blah'
} catch {}

a CREATE TABLE musi czekać na zwolnienie blokady pliku używanego przez BCS.

Do przemyślenia, jak lepiej wykrywać i aktualizować strukturę BWS.

emkael commented 6 years ago

O, a to trzeba dla odmiany otworzyć ponownie, bo pojawiły się Inne Koncepcje™.