栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Room-未将模式导出目录提供给注释处理器,因此我们无法导出模式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Room-未将模式导出目录提供给注释处理器,因此我们无法导出模式

根据文档:

您可以设置注释处理器参数(room.schemaLocation)来指示Room将架构导出到文件夹中。尽管不是强制性的,但在代码库中保留版本历史记录是一个好习惯,您应该将该文件提交到版本控制系统中(但不要随应用程序一起发布!)。

因此,如果您不需要检查架构并且想要摆脱警告,只需将添加

exportSchema = false
RoomDatabase
,如下所示。

@Database(entities = { YourEntity.class }, version = 1, exportSchema = false)public abstract class AppDatabase extends RoomDatabase {   //...}

如果您遵循以下@mikejonesguy答案,则将遵循docs中提到的良好做法:)。基本上,您会

.json
../app/schemas/
文件夹中得到一个文件。它看起来像这样:

{  "formatVersion": 1,  "database": {    "version": 1,    "identityHash": "53db508c5248423325bd5393a1c88c03",    "entities": [      {        "tableName": "sms_table",        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `message` TEXT, `date` INTEGER, `client_id` INTEGER)",        "fields": [          { "fieldPath": "id", "columnName": "id", "affinity": "INTEGER"          },          { "fieldPath": "message", "columnName": "message", "affinity": "TEXT"          },          { "fieldPath": "date", "columnName": "date", "affinity": "INTEGER"          },          { "fieldPath": "clientId", "columnName": "client_id", "affinity": "INTEGER"          }        ],        "primaryKey": {          "columnNames": [ "id"          ],          "autoGenerate": true        },        "indices": [],        "foreignKeys": []      }    ],    "setupQueries": [      "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, "53db508c5248423325bd5393a1c88c03")"    ]  }}

如果我的理解是正确的,那么每次数据库版本更新时,您都会获得一个这样的文件,以便您可以轻松地跟踪数据库的历史记录。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454775.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号