Gemäß den Dokumenten :
Sie können das Annotation Processor-Argument (room.schemaLocation) festlegen, um Room anzuweisen, das Schema in einen Ordner zu exportieren. Auch wenn dies nicht obligatorisch ist, empfiehlt es sich, den Versionsverlauf in Ihrer Codebasis zu haben, und Sie sollten diese Datei in Ihr Versionskontrollsystem übertragen (aber nicht mit Ihrer App ausliefern!).
Wenn Sie also das Schema nicht überprüfen müssen und die Warnung entfernen möchten, fügen exportSchema = false
Sie sie einfach RoomDatabase
wie folgt hinzu.
@Database(entities = { YourEntity.class }, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
//...
}
Wenn Sie der Antwort von @mikejonesguy unten folgen, befolgen Sie die in den Dokumenten genannten bewährten Methoden :). Grundsätzlich erhalten Sie eine .json
Datei in Ihrem ../app/schemas/
Ordner. Und es sieht ungefähr so aus:
{
"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\")"
]
}
}
Wenn mein Verständnis korrekt ist, erhalten Sie bei jedem Update der Datenbankversion eine solche Datei, sodass Sie den Verlauf Ihrer Datenbank problemlos verfolgen können.