Wersja programu a wersja bazy danych

0

Chciałbym dokonać korekty pewniej funkcji w programie, funkcja ta zapisuje wszystkie dokonane zmiany do bazy (pliku). Mając dwie wersje programu 11.0 (release) oraz 12 (beta). Przy wdrożeniu tej funkcji okazało się że funkcja nie działa prawidłowo w wersji 11.0, a że czas goni, nie było czasu na poprawe kodu, więc dane w programie zostały celowo błędnie wpisane do bazy (aby otrzymać poprawne wyniki). Po jakimś czasie okazało się że funkcje tę należy w końcu poprawić. Problem polega na tym iż jeśli działanie tej funkcji (odczyt oraz zapis do pliku) zostanie poprawione np. od wersji 12, to należy zmienić również wszystkie dane które były zapisane do pliku w wersji 11.0. Więc klienci którzy posiadają starą wersje programu czyli 11.0 będą mieli znowu błędy w programie, gdyż wersja 11.0 oraz 12.0 mają wspólną baze danych ale różny sposób zapisu tych danych. I pytanie brzmi czy można jakoś to obejść np. każda wersja programu ma własną bazę danych. Z góry dziękuje.

2

Na pewno nie chcesz zrobić całościowego upgradu bazy?
To jest najprostszy sposób.
Aplikacja na starcie wykrywa czy ma odpowiednią wersję bazy (wg jakiegoś nr wersji). Jeśli nie to odmawia startu i prosi o aktualizację.
A aktualizacja odpala tylko te updaty które są potrzebne.

Problem jest gdy zmiana jest na tyle skomplikowana że wymaga kodu w Delphi.
Wtedy możesz zrobić update progresywny.

  1. na odczycie próbować przygotować poprawne dane jeśli są skopane
  2. na zapisie zapisywać tylko w nowy sposób

Taki sposób nie będzie dobry jeśli masz jakieś zestawienia które SQL-em przetwarzają uszkodzone dane.

0

Dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1