2017-05-20 14 views
9

यह पूछने के लिए थोड़ा जल्दी हो सकता है, लेकिन क्या यह संभव है और मौजूदा SQLite डेटाबेस एप्लिकेशन को एक नए एंड्रॉइड रूम पर्सिस्टेंस लाइब्रेरी में माइग्रेट/अपग्रेड कैसे करें?मौजूदा SQLite एप्लिकेशन को कक्ष पर्सिस्टेंस लाइब्रेरी में माइग्रेट कैसे करें?

उत्तर

9

मान लें कि आपके कमरे की इकाइयां आपके वर्तमान टेबल स्कीमा से मेल खाते हैं, आप उसी डेटाबेस/टेबल का उपयोग कर रख सकते हैं।

कक्ष एक मास्टर तालिका जो निर्माण पर प्रारंभ या डेटाबेस के उन्नयन है प्रबंधन करता है, तो आप अपने डेटाबेस संस्करण को बढ़ा देते हैं और एक डमी प्रवास उपलब्ध कराने की आवश्यकता:

@Database(entities = SomeEntity.class, version = EXISTING_VERSION + 1) 
public class MyDatabase extends RoomDatabase { 
    // ... 
} 

MyDatabase db = Room.databaseBuilder(context, MyDatabase.class, "db_name") 
        .addMigrations(new Migration(EXISTING_VERSION, EXISTING_VERSION + 1) { 
         @Override 
         public void migrate(SupportSQLiteDatabase database) { 
          // NOOP 
         } 
        }).build(); 
+0

अभी तक यह परीक्षण नहीं किया है, लेकिन मैं इसे एक उत्तर के रूप में चिह्नित करेंगे, क्योंकि डेटाबेस नाम पैरामीटर शायद आपको किसी भी पिछले और पहले से मौजूद डेटाबेस का उपयोग करने की अनुमति देता है। –

+0

क्या आप इस प्रवासन का परीक्षण करने के लिए एक तरीका जानते हैं? मैंने https://developer.android.com/topic/libraries/architecture/room.html#testing पर ध्यान दिया है, लेकिन मुझे यकीन नहीं है कि मौजूदा स्क्लाइट से कमरे में माइग्रेशन का परीक्षण कैसे करें। – AdamMc331

संबंधित मुद्दे