Meshtastic-Android/app/src/main/java/com/geeksville/mesh/database/MeshtasticDatabase.kt

72 lines
2.4 KiB
Kotlin
Raw Normal View History

2020-09-23 22:47:45 -04:00
package com.geeksville.mesh.database
2022-07-29 21:28:09 -03:00
import android.content.Context
import androidx.room.AutoMigration
2020-09-23 22:47:45 -04:00
import androidx.room.Database
import androidx.room.DeleteTable
2022-07-29 21:28:09 -03:00
import androidx.room.Room
2020-09-23 22:47:45 -04:00
import androidx.room.RoomDatabase
2022-09-14 01:54:13 -03:00
import androidx.room.TypeConverters
import androidx.room.migration.AutoMigrationSpec
2022-09-14 01:54:13 -03:00
import com.geeksville.mesh.database.dao.PacketDao
2022-09-13 22:49:38 -03:00
import com.geeksville.mesh.database.dao.MeshLogDao
import com.geeksville.mesh.database.dao.NodeInfoDao
2022-08-11 16:43:26 +01:00
import com.geeksville.mesh.database.dao.QuickChatActionDao
import com.geeksville.mesh.database.entity.ContactSettings
2022-09-13 22:49:38 -03:00
import com.geeksville.mesh.database.entity.MeshLog
import com.geeksville.mesh.database.entity.MyNodeEntity
import com.geeksville.mesh.database.entity.NodeEntity
2022-09-14 01:54:13 -03:00
import com.geeksville.mesh.database.entity.Packet
2022-08-11 16:43:26 +01:00
import com.geeksville.mesh.database.entity.QuickChatAction
2020-09-23 22:47:45 -04:00
@Database(
entities = [
MyNodeEntity::class,
NodeEntity::class,
Packet::class,
ContactSettings::class,
MeshLog::class,
QuickChatAction::class
],
autoMigrations = [
AutoMigration(from = 3, to = 4),
AutoMigration(from = 4, to = 5),
AutoMigration(from = 5, to = 6),
AutoMigration(from = 6, to = 7),
AutoMigration(from = 7, to = 8),
AutoMigration(from = 8, to = 9),
AutoMigration(from = 9, to = 10),
AutoMigration(from = 10, to = 11),
AutoMigration(from = 11, to = 12),
AutoMigration(from = 12, to = 13, spec = AutoMigration12to13::class),
],
version = 13,
exportSchema = true,
)
2022-09-14 01:54:13 -03:00
@TypeConverters(Converters::class)
2020-09-23 22:47:45 -04:00
abstract class MeshtasticDatabase : RoomDatabase() {
abstract fun nodeInfoDao(): NodeInfoDao
2022-09-14 01:54:13 -03:00
abstract fun packetDao(): PacketDao
2022-09-13 22:49:38 -03:00
abstract fun meshLogDao(): MeshLogDao
2022-08-11 16:43:26 +01:00
abstract fun quickChatActionDao(): QuickChatActionDao
2022-07-29 21:28:09 -03:00
companion object {
fun getDatabase(context: Context): MeshtasticDatabase {
return Room.databaseBuilder(
context.applicationContext,
MeshtasticDatabase::class.java,
"meshtastic_database"
)
.fallbackToDestructiveMigration()
.build()
}
}
}
@DeleteTable.Entries(
DeleteTable(tableName = "NodeInfo"),
DeleteTable(tableName = "MyNodeInfo")
)
class AutoMigration12to13 : AutoMigrationSpec