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

Android中如何为SQLDelight指定自定义数据库目录?

如何修改AndroidSqliteDriver的数据库存储位置

当然可以修改数据库的存储位置。AndroidSqliteDriver提供了支持自定义路径的构造方法,不用局限于默认的应用内部databases目录。

具体做法是直接传入数据库文件的完整绝对路径作为参数,而非仅传入文件名"test.db"。比如要把数据库存到外部存储的自定义目录下,代码可以这么写:

// 定义外部存储的应用专属自定义目录路径
val dbDir = File(context.getExternalFilesDir(null), "custom_db")
// 确保目录存在,不存在则创建
if (!dbDir.exists()) {
    dbDir.mkdirs()
}
// 拼接数据库文件的完整路径
val dbPath = File(dbDir, "test.db").absolutePath
// 使用完整路径初始化AndroidSqliteDriver
val driver = AndroidSqliteDriver(OfflinePersonalDataDb.Schema, context, dbPath)

需要注意:

  • 若使用外部存储路径,Android 10及以上版本借助Scoped Storage机制,访问应用专属外部目录无需额外申请存储权限;如果是其他外部路径,则需要对应权限
  • 必须确保自定义路径的上级目录已存在,否则数据库创建会失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 17:32:02