Databáze v Androidu - Knihovna Room a Migrace
V minulé lekci, Databáze v Androidu - Použití databázových tříd, jsme dokončili úpravy Java kódu našeho projektu pro použití Room databáze.
V dnešním Android tutoriálu si probereme problematiku migrace mezi verzemi databáze při použití knihovny Room.
Dnešní část je pouze teoretická, proto nebudeme provádět úpravy projektu našeho poznámkového bločku.
V průběhu vývoje nebo pozdější aktualizace projektu se může objevit požadavek na úpravu třídy entity (např. přidáním další proměnné, resp. dalšího sloupce tabulky databáze), čímž měníme strukturu databáze.
Po každé změně struktury databáze musíme v Java kódu změnit číslo verze databáze.
Změnu verze provedeme úpravou vlastnosti version
anotace
@Database
naší třídy AppDatabase
(viz.
následující ukázka kódu).
Po aktualizaci aplikace, zahrnující i změnu verze databáze, budou veškerá data, která uživatel v naší aplikaci do databáze uložil, nenávratně ztracena.
Ztrátě dat se můžeme vyhnout použitím migrace. Knihovna Room nabízí:
- automatickou migraci - fungují pro většinu základních změn schématu databáze,
- manuální migraci - definujeme v případě složitějších změn.
Databáze Room podporuje automatizované migrace od verze 2.4.0-alpha01.
Verze Room databáze
Verzi Room databáze definujeme v souboru build.gradle
:
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V Android tutoriálu si probereme problematiku migrace mezi verzemi databáze při použití knihovny Room.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.