You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中为现有数据库添加新表?数据库检查显示已关闭

问题

我需要在Kotlin中为现有数据库添加一张新表,使用App Inspection操作时,数据库检查显示数据库处于关闭状态。

相关代码截图说明

  • 第一张截图展示了数据库相关的核心代码结构(如数据库类、DAO定义)
  • 第二张截图包含数据库版本更新及新表创建的逻辑代码
解决建议
  • 确保数据库已初始化并打开:如果使用Room等框架,确认Room.databaseBuilder已完成初始化并获取了数据库实例,且未提前调用close()方法关闭连接。应用启动后至少执行一次数据库操作(如查询、插入),触发数据库打开。
  • 正确处理数据库版本迁移:添加新表必须提升数据库版本号,并在迁移逻辑中执行建表语句。以Room为例:
    // 定义版本1到2的迁移规则
    private val MIGRATION_1_2 = object : Migration(1, 2) {
        override fun migrate(db: SupportSQLiteDatabase) {
            // 执行新表创建SQL
            db.execSQL("CREATE TABLE IF NOT EXISTS `new_table` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `content` TEXT NOT NULL)")
        }
    }
    
    // 构建数据库时添加迁移
    val db = Room.databaseBuilder(
        context.applicationContext,
        AppDatabase::class.java,
        "your_database_name"
    ).addMigrations(MIGRATION_1_2).build()
    
  • 检查App Inspection操作时机:确保应用处于前台运行状态,再打开App Inspection连接数据库。避免在应用未启动或数据库未被访问时进行检查。
  • 确认数据库路径正确性:在App Inspection中选择正确的应用进程及数据库文件路径,避免因路径错误导致显示数据库关闭。

内容的提问来源于stack exchange,提问作者umanga sumidu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 09:16:00