डॉक्स के अनुसार :
आप स्कीमा को एक फ़ोल्डर में निर्यात करने के लिए रूम बताने के लिए एनोटेशन प्रोसेसर तर्क (room.schemaLocation) सेट कर सकते हैं। हालांकि यह अनिवार्य नहीं है, यह आपके कोडबेस में संस्करण इतिहास रखने के लिए एक अच्छा अभ्यास है और आपको उस फ़ाइल को अपने संस्करण नियंत्रण प्रणाली में करना चाहिए (लेकिन इसे अपने ऐप के साथ शिप न करें!)।
इसलिए यदि आपको स्कीमा की जांच करने की आवश्यकता नहीं है और आप चेतावनी से छुटकारा पाना चाहते हैं, तो बस , इस प्रकार exportSchema = false
से अपने को जोड़ें RoomDatabase
।
@Database(entities = { YourEntity.class }, version = 1, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
//...
}
यदि आप नीचे दिए गए @mikejonesguy उत्तर का अनुसरण करते हैं, तो आप डॉक्स में उल्लिखित अच्छे अभ्यास का अनुसरण करेंगे :)। मूल रूप से आपको .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\")"
]
}
}
अगर मेरी समझ सही है, तो आपको हर डेटाबेस वर्जन अपडेट के साथ ऐसी फाइल मिलेगी, जिससे आप आसानी से अपने db के इतिहास का पालन कर सकते हैं।