X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fdb%2FDB.java;h=f68fccd533cb4d51e567b8c057ea7122fc18d1c6;hp=2dbc7c24fbf8e6ce92de59de116677d403528514;hb=2aec7de70b2d512f20105a64255237c0119f2b1c;hpb=da6d2e9c50bef3d38a957f91004b21d43d0732e3 diff --git a/app/src/main/java/net/ktnx/mobileledger/db/DB.java b/app/src/main/java/net/ktnx/mobileledger/db/DB.java index 2dbc7c24..f68fccd5 100644 --- a/app/src/main/java/net/ktnx/mobileledger/db/DB.java +++ b/app/src/main/java/net/ktnx/mobileledger/db/DB.java @@ -17,9 +17,12 @@ package net.ktnx.mobileledger.db; +import androidx.annotation.NonNull; import androidx.room.Database; import androidx.room.Room; import androidx.room.RoomDatabase; +import androidx.room.migration.Migration; +import androidx.sqlite.db.SupportSQLiteDatabase; import net.ktnx.mobileledger.App; import net.ktnx.mobileledger.dao.CurrencyDAO; @@ -27,7 +30,7 @@ import net.ktnx.mobileledger.dao.PatternAccountDAO; import net.ktnx.mobileledger.dao.PatternHeaderDAO; import net.ktnx.mobileledger.utils.MobileLedgerDatabase; -@Database(version = 51, entities = {PatternHeader.class, PatternAccount.class, Currency.class}) +@Database(version = 52, entities = {PatternHeader.class, PatternAccount.class, Currency.class}) abstract public class DB extends RoomDatabase { private static DB instance; public static DB get() { @@ -39,10 +42,29 @@ abstract public class DB extends RoomDatabase { return instance = Room.databaseBuilder(App.instance, DB.class, MobileLedgerDatabase.DB_NAME) + .addMigrations(new Migration[]{new Migration(51, 52) { + @Override + public void migrate(@NonNull SupportSQLiteDatabase db) { + db.beginTransaction(); + try { + db.execSQL("create index fk_pattern_accounts_pattern on " + + "pattern_accounts(pattern_id);"); + db.execSQL("create index fk_pattern_accounts_currency on " + + "pattern_accounts(currency);"); + db.setTransactionSuccessful(); + } + finally { + db.endTransaction(); + } + } + } + }) .build(); } } public abstract PatternHeaderDAO getPatternDAO(); + public abstract PatternAccountDAO getPatternAccountDAO(); + public abstract CurrencyDAO getCurrencyDAO(); }