Files
mobile-android/app/src/main/java/com/rosetta/messenger/database/RosettaDatabase.kt

44 lines
1.3 KiB
Kotlin

package com.rosetta.messenger.database
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
@Database(
entities = [
EncryptedAccountEntity::class,
MessageEntity::class,
DialogEntity::class,
BlacklistEntity::class
],
version = 3,
exportSchema = false
)
abstract class RosettaDatabase : RoomDatabase() {
abstract fun accountDao(): AccountDao
abstract fun messageDao(): MessageDao
abstract fun dialogDao(): DialogDao
abstract fun blacklistDao(): BlacklistDao
companion object {
@Volatile
private var INSTANCE: RosettaDatabase? = null
fun getDatabase(context: Context): RosettaDatabase {
return INSTANCE ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
RosettaDatabase::class.java,
"rosetta_secure.db"
)
.setJournalMode(JournalMode.WRITE_AHEAD_LOGGING) // WAL mode for performance
.fallbackToDestructiveMigration() // Для разработки
.build()
INSTANCE = instance
instance
}
}
}
}