Sesuai dokumen :
Anda dapat mengatur argumen prosesor anotasi (room.schemaLocation) untuk memberi tahu Room untuk mengekspor skema ke folder. Meskipun tidak wajib, ini adalah praktik yang baik untuk memiliki riwayat versi di basis kode Anda dan Anda harus memasukkan file itu ke dalam sistem kontrol versi Anda (tetapi jangan kirimkan bersama aplikasi Anda!).
Jadi, jika Anda tidak perlu memeriksa skema dan Anda ingin menyingkirkan peringatan itu, tambahkan saja exportSchema = false
pada Anda RoomDatabase
, sebagai berikut.
@Database(entities = { YourEntity.class }, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
//...
}
Jika Anda mengikuti jawaban @mikejonesguy di bawah ini, Anda akan mengikuti praktik baik yang disebutkan dalam dokumen :). Pada dasarnya Anda akan mendapatkan .json
file di ../app/schemas/
folder Anda . Dan terlihat seperti ini:
{
"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\")"
]
}
}
Jika pemahaman saya benar, Anda akan mendapatkan file seperti itu dengan setiap pembaruan versi basis data, sehingga Anda dapat dengan mudah mengikuti sejarah db Anda.