add database migration
This commit is contained in:
parent
f76d90affd
commit
b5baaa89cf
2 changed files with 25 additions and 3 deletions
|
@ -64,8 +64,7 @@ public class TuskyApplication extends Application {
|
||||||
|
|
||||||
db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "tuskyDB")
|
db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "tuskyDB")
|
||||||
.allowMainThreadQueries()
|
.allowMainThreadQueries()
|
||||||
.addMigrations(AppDatabase.MIGRATION_2_3)
|
.addMigrations(AppDatabase.MIGRATION_2_3, AppDatabase.MIGRATION_3_4, AppDatabase.MIGRATION_4_5)
|
||||||
.addMigrations(AppDatabase.MIGRATION_3_4)
|
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
JobManager.create(this).addJobCreator(new NotificationPullJobCreator(this));
|
JobManager.create(this).addJobCreator(new NotificationPullJobCreator(this));
|
||||||
|
|
|
@ -25,7 +25,7 @@ import android.support.annotation.NonNull;
|
||||||
* DB version & declare DAO
|
* 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 class AppDatabase extends RoomDatabase {
|
||||||
|
|
||||||
public abstract TootDao tootDao();
|
public abstract TootDao tootDao();
|
||||||
|
@ -51,4 +51,27 @@ public abstract class AppDatabase extends RoomDatabase {
|
||||||
database.execSQL("ALTER TABLE TootEntity ADD COLUMN visibility INTEGER");
|
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`)");
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
Loading…
Reference in a new issue