Итак, я внедрил базу данных Room Library в свой проект в Android Studio. Проблема в том, что каждый раз, когда я закрываю приложение, данные теряются.
Я выполнил пустую миграцию:
static final Migration MIGRATION_1_2 = new Migration(1, 2) {
@Override
public void migrate(SupportSQLiteDatabase database) {
// Since we didn't alter the table, there's nothing else to do here.
}
};
Как показано на Medium
Я пытался изменить номер версии базы данных несколько раз, но это не помогло.
Просто чтобы прояснить, как я создаю свою базу данных, сначала я предварительно заполняю одну сущность из активов, а после того, как у меня есть другой сущность, которая заполняется в соответствии с вводом пользователя.
РЕДАКТИРОВАТЬ: вот как я инициализирую:
@Volatile
private var INSTANCE: MyDatabase? = null
private const val NUMBER_OF_THREADS = 4
val databaseWriteExecutor: ExecutorService =
Executors.newFixedThreadPool(NUMBER_OF_THREADS)
val MIGRATION_1_2: Migration = object : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
}
}
fun getDatabase(application: Application): MyDatabase? {
if (INSTANCE == null) {
synchronized(MyDatabase::class.java) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(
application.applicationContext,
MyDatabase::class.java, DATABASE_NAME
)
.createFromAsset(DATABASE_DIR)
.addMigrations(MIGRATION_1_2)
.build()
}
}
}
return INSTANCE