✏️ Room을 공부하던 중 자꾸 데이터를 성공적으로 저장하는데 앱을 Reload하면 데이터가 삭제하는 문제가 발생하였습니다.
❗️내가 Room을 확실히 이해하지 못해 발생한 문제로 Room을 사용하면 데이터가 내부에 저장되는 것인데 외부DB에서 값을 불러와 변경된 값이 적용되지 않는 문제였습니다.
문제의 코드)
fun getFavoriteDatabase(context: Context): FavoriteDatabase {
return Instance ?: synchronized(this) {
Room.databaseBuilder(context, FavoriteDatabase::class.java, "favorite_database")
//아래코드에서 외부에서 DB를 불러와 문제가 발생(아래코드 삭제하면 해결)
.createFromAsset("database/flight_search.db")
.fallbackToDestructiveMigration().build().also { Instance = it }
}
}
📚 처음에 필요한 DB값만 외부에서 불러오고 값의 저장과 저장된 값을 가져오는 것은 내부에서 이루어 진다는 것을 알아야한다. 즉 외부DB에 영향을 끼치지 않는다.