add database migration

This commit is contained in:
Conny Duck 2018-02-04 10:12:01 +01:00
parent f76d90affd
commit b5baaa89cf
2 changed files with 25 additions and 3 deletions

View file

@ -64,8 +64,7 @@ public class TuskyApplication extends Application {
db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "tuskyDB")
.allowMainThreadQueries()
.addMigrations(AppDatabase.MIGRATION_2_3)
.addMigrations(AppDatabase.MIGRATION_3_4)
.addMigrations(AppDatabase.MIGRATION_2_3, AppDatabase.MIGRATION_3_4, AppDatabase.MIGRATION_4_5)
.build();
JobManager.create(this).addJobCreator(new NotificationPullJobCreator(this));

View file

@ -25,7 +25,7 @@ import android.support.annotation.NonNull;
* DB version & declare DAO
*/
@Database(entities = {TootEntity.class, AccountEntity.class}, version = 4, exportSchema = false)
@Database(entities = {TootEntity.class, AccountEntity.class}, version = 5, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
public abstract TootDao tootDao();
@ -51,4 +51,27 @@ public abstract class AppDatabase extends RoomDatabase {
database.execSQL("ALTER TABLE TootEntity ADD COLUMN visibility INTEGER");
}
};
public static final Migration MIGRATION_4_5 = new Migration(4, 5) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("CREATE TABLE `AccountEntity` (" +
"`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
"`domain` TEXT NOT NULL, `accessToken` TEXT NOT NULL, " +
"`isActive` INTEGER NOT NULL, `accountId` TEXT NOT NULL, " +
"`username` TEXT NOT NULL, `displayName` TEXT NOT NULL, " +
"`profilePictureUrl` TEXT NOT NULL, " +
"`notificationsEnabled` INTEGER NOT NULL, " +
"`notificationsMentioned` INTEGER NOT NULL, " +
"`notificationsFollowed` INTEGER NOT NULL, " +
"`notificationsReblogged` INTEGER NOT NULL, " +
"`notificationsFavorited` INTEGER NOT NULL, " +
"`notificationSound` INTEGER NOT NULL, " +
"`notificationVibration` INTEGER NOT NULL, " +
"`notificationLight` INTEGER NOT NULL, " +
"`lastNotificationId` TEXT NOT NULL, " +
"`activeNotifications` TEXT NOT NULL)");
database.execSQL("CREATE UNIQUE INDEX `index_AccountEntity_domain_accountId` ON `AccountEntity` (`domain`, `accountId`)");
}
};
}