根据文档:
您可以设置注释处理器参数(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")" ] }}如果我的理解是正确的,那么每次数据库版本更新时,您都会获得一个这样的文件,以便您可以轻松地跟踪数据库的历史记录。



