49 lines
1.6 KiB
Kotlin
49 lines
1.6 KiB
Kotlin
package com.dano.test1
|
|
|
|
import android.app.Application
|
|
import android.util.Log
|
|
import androidx.room.Room
|
|
import androidx.room.RoomDatabase
|
|
import com.dano.test1.data.AppDatabase
|
|
|
|
/*
|
|
MyApp (Application)
|
|
- Einstiegspunkt der App, der einmal pro Prozessstart initialisiert wird.
|
|
|
|
Besonderheiten der DB-Konfiguration:
|
|
- Name: "questionnaire_database"
|
|
- fallbackToDestructiveMigration():
|
|
* Falls sich das Schema ändert und keine Migration vorliegt,wird die DB zerstört und neu angelegt.
|
|
- setJournalMode(TRUNCATE):
|
|
* Verwendet TRUNCATE-Journal (keine separaten -wal/-shm Dateien), es existiert nur die Hauptdatei „questionnaire_database“.
|
|
- Callback onOpen():
|
|
* Loggt beim Öffnen der Datenbank einen Hinweis.
|
|
*/
|
|
class MyApp : Application() {
|
|
|
|
companion object {
|
|
lateinit var database: AppDatabase
|
|
private set
|
|
}
|
|
|
|
override fun onCreate() {
|
|
super.onCreate()
|
|
|
|
// Room-Datenbank bauen: nur die Hauptdatei, ohne WAL und Journal
|
|
database = Room.databaseBuilder(
|
|
applicationContext,
|
|
AppDatabase::class.java,
|
|
"questionnaire_database"
|
|
)
|
|
.fallbackToDestructiveMigration()
|
|
.setJournalMode(RoomDatabase.JournalMode.TRUNCATE) // TRUNCATE = keine -wal Datei, nur Hauptdatei
|
|
.addCallback(object : RoomDatabase.Callback() {
|
|
override fun onOpen(db: androidx.sqlite.db.SupportSQLiteDatabase) {
|
|
super.onOpen(db)
|
|
Log.d("DB", "Datenbank geöffnet. Nur questionnaire_database wird genutzt.")
|
|
}
|
|
})
|
|
.build()
|
|
}
|
|
}
|