[8.3.0][站点临时禁用] 数据库增加站点标志

This commit is contained in:
xinfengkun
2025-12-08 11:10:50 +08:00
parent 4cc63013ac
commit 724607fb9d
3 changed files with 893 additions and 3 deletions

View File

@@ -39,7 +39,7 @@ import java.util.concurrent.Executors
@Database(entities = [ContrailDataBean::class, LineDataBean::class,
SiteDataBean::class, TaskDataBean::class, TaskSiteDataBean::class,
EventDataBean::class, WriteOffDataBean::class,PointDataBean::class
], version = 7)
], version = 8)
abstract class MyDataBase : RoomDatabase() {
private val dbRepositorys = mutableListOf<IDbRepository>()
@@ -114,7 +114,22 @@ abstract class MyDataBase : RoomDatabase() {
database.execSQL("ALTER TABLE ${ContrailDataBean.tableName} ADD COLUMN source INTEGER")
}
}
private val MIGRATION_7_8 = object : Migration(7, 8) {
override fun migrate(db: SupportSQLiteDatabase) {
// 获取当前数据库文件名通过database路径解析
CallerLogger.d(TAG, "数据库路径:${db.path?: "错误"}")
val dbPath = db.path ?: return
val dbFileName = dbPath.substringAfterLast(File.separator)
// 仅当数据库是shuttle_db时执行新增tag字段操作
if (dbFileName == "shuttle_db") {
// 新增tag字段int类型非空默认值0
db.execSQL("ALTER TABLE ${SiteDataBean.tableName} ADD COLUMN tag INTEGER NOT NULL DEFAULT 0")
CallerLogger.d(TAG, "shuttle_db${SiteDataBean.tableName}新增tag字段成功")
} else {
CallerLogger.d(TAG, "非shuttle_db跳过tag字段新增")
}
}
}
fun getDBName():MyDataBase{
@@ -164,6 +179,7 @@ abstract class MyDataBase : RoomDatabase() {
.addMigrations(MIGRATION_4_5)
.addMigrations(MIGRATION_5_6)
.addMigrations(MIGRATION_6_7)
.addMigrations(MIGRATION_7_8)
.fallbackToDestructiveMigration()
.setQueryCallback({ sqlQuery, bindArgs -> CallerLogger.d(TAG,"sql:$sqlQuery--->参数:$bindArgs") }, Executors.newSingleThreadExecutor())
.build()

View File

@@ -87,6 +87,12 @@ data class SiteDataBean(
@ColumnInfo(name = "videoList", typeAffinity = ColumnInfo.TEXT)
var videoListDB: String? = null,
/**
* 站点标志 0未赋值/默认值与1结果一致 1正常停靠 2临时不停靠
*/
@ColumnInfo(name = "tag", typeAffinity = ColumnInfo.INTEGER, defaultValue = "0")
var tag: Int = 0,
@Ignore
var videoList:MutableList<SiteIntroduce>?=null
) {
@@ -96,7 +102,7 @@ data class SiteDataBean(
}
override fun toString(): String {
return "SiteDataBean(siteId=$siteId, lineId=$lineId, name=$name, nameKr=$nameKr, seq=$seq, gcjLon=$gcjLon, gcjLat=$gcjLat, lon=$lon, lat=$lat, introduction=$introduction, isPlayTts=$isPlayTts, videoList=$videoListDB)"
return "SiteDataBean(siteId=$siteId, lineId=$lineId, name=$name, nameKr=$nameKr, seq=$seq, gcjLon=$gcjLon, gcjLat=$gcjLat, lon=$lon, lat=$lat, introduction=$introduction, isPlayTts=$isPlayTts, videoList=$videoListDB, tag=$tag)"
}
override fun equals(other: Any?): Boolean {