```@Database(entities = [Note::class], version = 1...
# android
d
Copy code
@Database(entities = [Note::class], version = 1, exportSchema = false)
abstract class NoteRoomDatabase : RoomDatabase(){
     abstract fun noteDao(): NoteDao

    companion object{
        @Volatile
        private var roomInstance : NoteRoomDatabase  ?= null
        private val LOCK = Any()

        operator fun invoke(context: Context) = roomInstance ?: synchronized(LOCK){
            roomInstance ?: createRoomDatabase(context).also { roomInstance = it }
        }

        private fun createRoomDatabase(context: Context) = Room.databaseBuilder(
            context.applicationContext,
            NoteRoomDatabase::class.java,
            "NOTE_ROOM_DB"
        )
            .fallbackToDestructiveMigration()
            .build()
    }
}