Selon les documents :
Vous pouvez définir l'argument du processeur d'annotations (room.schemaLocation) pour indiquer à Room d'exporter le schéma dans un dossier. Même si ce n'est pas obligatoire, c'est une bonne pratique d'avoir l'historique des versions dans votre base de code et vous devez valider ce fichier dans votre système de contrôle de version (mais ne le livrez pas avec votre application!).
Donc, si vous n'avez pas besoin de vérifier le schéma et que vous souhaitez vous débarrasser de l'avertissement, ajoutez simplement exportSchema = false
à votre RoomDatabase
, comme suit.
@Database(entities = { YourEntity.class }, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
//...
}
Si vous suivez la réponse @mikejonesguy ci-dessous, vous suivrez la bonne pratique mentionnée dans la documentation :). Fondamentalement, vous obtiendrez un .json
fichier dans votre ../app/schemas/
dossier. Et cela ressemble à ceci:
{
"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\")"
]
}
}
Si ma compréhension est correcte, vous obtiendrez un tel fichier avec chaque mise à jour de la version de la base de données, afin que vous puissiez facilement suivre l'historique de votre base de données.