Aria

Apache Derby – tutorial

Apache Derby: aktualizacja wersji

Aktualizacja wersji (upgrade)

Gdy zmieni się wersja systemu Apache Derby nadal można korzystać z baz danych utworzonych w poprzedniej wersji, ale nie można korzystać z nowych cech systemu Derby. Jest to tak zwany miękka aktualizacja (soft upgrade).

Aby móc korzystać z nowych cech systemu Derby należy dokonać tzw. pełnej aktualizacji (full upgrade) bazy danych

Pełna aktualizacja dokonuje zmian w tabelach systemowych i oznacza bazę danych jako zaktualizowaną do nowej wersji.

Aktualizacja pełna jest nieodwracalna i nie ma możliwości przywrócenia bazy danych do poprzedniej wersji, a więc i korzystania z niej przy użyciu poprzedniej wersji systemu Apache Derby.

Nie jest możliwe zaktualizowanie bazy danych zapisanej na mediach tylko do odczytu np. CD czy DVD

Przygotowanie do aktualizacji

  1. Wykonaj kopię zapasową bazy przed pierwszym połączeniem
  2. W razie potrzeby zaktualizuj ścieżki CLASSPATH i MODULEPATH tak, aby prowadziły wyłącznie do plików JAR nowej wersji. Można to sprawdzić przy użyciu narzędzia sysinfo. Wystarczy wprowadzić z linii poleceń Windows komendę java org.apache.derby.tools.sysinfo

Aktualizacja

Aktualizacja następuje przez połączenie z bazą danych

Aktualizacja miękka

Po prostu łączysz się z bazą danych tak jak dotychczas

jdbc:derby:c:/java/rozliczeniadb

Aktualizacja pełna

Łączysz się z bazą danych dodając atrybut 'upgrade=true' do połączenia

jdbc:derby:c:/java/rozliczeniadb;upgrade=true

Przykład

Przykład w klasie aderby.security.R114_Upgrade

    DerbyUtil.startDerbyEngine(DerbyUtil.embdriver);
    Connection con = DerbyUtil.connectEmbeddedDB("c:/bt4",
     ";upgrade=true");
    DerbyUtil.shutdownEmbeddedDB("c:/bt4");
    DerbyUtil.shutdownDerbyEngine();

Pliki do ściągnięcia

R114_Upgrade.zip (klasa uruchamiająca)

Aktualny (tworzony narastająco) plik module-info.java

Aktualny (tworzony narastająco) plik DerbyUtil.java

Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszystkich wpisach w projekcie. W przypadku pliku module-info.java może być potrzebne skreślenie niepotrzebnych wpisów.