android - 重命名和删除房间数据库
问题描述
我想知道如何重命名或删除通过以下代码实例化的房间数据库:
AppDatabase db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database-name").build();
我应该期待一个database-name.db
文件getApplicationContext().getFilesDir()
,然后我可以重命名或删除它吗?这种方法安全吗?
我目前的解决方法是只使用一个具有多个表的数据库,模拟多个数据库。我不确定这种方法是否可以很好地扩展。
我在文档中找不到这个问题的任何答案。我不是在问如何重命名或删除列或行。
解决方案
要重命名房间数据库,您可以在获取数据库实例时执行以下操作:
//Kotlin
fun getDatabase(context: Context) : YourRoomDbClass {
return INSTANCE ?: synchronized(this){
val dbFile = context.applicationContext.getDatabasePath("your_old_db_name.db")
if(dbFile.exists()) dbFile.renameTo(File(dbFile.path + "your_new_db_name.db"))
val instance = Room.databaseBuilder(context.applicationContext, YourRoomDbClass::class.java, "your_new_db_name.db")
.build()
INSTANCE = instance
instance
}
}
推荐阅读
- windows - 图标化后 GtkEventBox 超过整个窗口
- c# - Blazor 服务器应用程序中的 Application Insight 相关性
- typescript - 根据当前 tsconfig 列出由 TypeScript 构建的文件
- image - 在拍摄的照片中添加日期 DELPHI FIREMONKEY
- c# - 根据 TextBox 值突出显示 ListView 行
- php - 下一个 js getInitialProps php 会话 id
- email - SQL Server 配置参数历史
- android - Android Room:添加和删除工作无限
- python - 有没有办法可以跳过python中文件路径的用户名
- php - QBXML 接收付款显示 Web 连接器中的解析错误 - php Devkit