Selon les docs:
Vous pouvez définir processeur d'annotation argument (la chambre.schemaLocation) pour dire à la Chambre à exporter le schéma dans un dossier. Même s'il n'est pas obligatoire, c'est une bonne pratique d'avoir la version de l'histoire dans votre base de code et vous vous engager à ce fichier dans votre système de contrôle de version (mais ne pas l'expédier avec votre application!).
Donc, si vous n'avez pas besoin de vérifier le schéma et que vous voulez vous débarrasser de l'avertissement, il suffit d'ajouter exportSchema = false
votre RoomDatabase
, comme suit.
@Database(entities = { YourEntity.class }, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
//...
}
Si vous suivez @mikejonesguy réponse ci-dessous, vous suivez les bonnes pratiques mentionnées dans les docs :).
Fondamentalement, vous obtiendrez un .json
le fichier dans votre ../app/schemas/
le dossier.
Et il ressemble à quelque chose comme 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 obtenez un fichier avec toutes les version de base de données mise à jour, de sorte que vous pouvez facilement suivre l'histoire de votre base de données.