अपने डेटाबेस की जांच करना और उसे डीबग करना

आपके ऐप्लिकेशन के डेटाबेस और उपयोगकर्ताओं की मौजूदगी की पुष्टि करना ज़रूरी है डेटाबेस बनाते समय रूम परसिस्टेंस लाइब्रेरी. यह पेज इस बारे में चर्चा करता है कि आपके डेटाबेस की जांच कैसे की जाती है और आपकी मदद करने के लिए डीबग करने के पास हुआ हो.

अपने डेटाबेस की जांच करें

डेटाबेस की जांच करने के दो तरीके हैं:

  • Android डिवाइस पर.
  • अपनी होस्ट डेवलपमेंट मशीन पर (इसका सुझाव नहीं दिया जाता).

डेटाबेस माइग्रेशन से जुड़ी खास जांच के बारे में जानकारी के लिए, यह देखें माइग्रेशन की जांच करना.

Android डिवाइस पर टेस्ट करना

आपके डेटाबेस तक पहुंच की जांच करने के लिए सुझाया गया तरीका, Android डिवाइस पर चलने वाली JUnit की जांच. क्योंकि इन परीक्षणों के लिए आवश्यक जो आपके यूज़र इंटरफ़ेस (यूआई) की जांच करने से ज़्यादा तेज़ हैं.

टेस्ट सेट अप करते समय, आपको मेमोरी में सेव किया जाने वाला अपने ऐप्लिकेशन का वर्शन बनाना चाहिए अपने टेस्ट को ज़्यादा हर्मेटिक बनाने के लिए अपने डेटाबेस का इस्तेमाल करें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:

Kotlin

@RunWith(AndroidJUnit4::class)
class SimpleEntityReadWriteTest {
    private lateinit var userDao: UserDao
    private lateinit var db: TestDatabase

    @Before
    fun createDb() {
        val context = ApplicationProvider.getApplicationContext<Context>()
        db = Room.inMemoryDatabaseBuilder(
                context, TestDatabase::class.java).build()
        userDao = db.getUserDao()
    }

    @After
    @Throws(IOException::class)
    fun closeDb() {
        db.close()
    }

    @Test
    @Throws(Exception::class)
    fun writeUserAndReadInList() {
        val user: User = TestUtil.createUser(3).apply {
            setName("george")
        }
        userDao.insert(user)
        val byName = userDao.findUsersByName("george")
        assertThat(byName.get(0), equalTo(user))
    }
}

Java

@RunWith(AndroidJUnit4.class)
public class SimpleEntityReadWriteTest {
    private UserDao userDao;
    private TestDatabase db;

    @Before
    public void createDb() {
        Context context = ApplicationProvider.getApplicationContext();
        db = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build();
        userDao = db.getUserDao();
    }

    @After
    public void closeDb() throws IOException {
        db.close();
    }

    @Test
    public void writeUserAndReadInList() throws Exception {
        User user = TestUtil.createUser(3);
        user.setName("george");
        userDao.insert(user);
        List<User> byName = userDao.findUsersByName("george");
        assertThat(byName.get(0), equalTo(user));
    }
}

अपनी होस्ट मशीन पर टेस्ट करें

रूम, SQLite Support Library का इस्तेमाल करता है, जो इनसे मेल खाने वाले इंटरफ़ेस उपलब्ध कराती है के लिए तैयार किया गया है. यह सहायता आपको अपने की मदद से अपनी डेटाबेस क्वेरी की जांच की जा सकती है.

अपने माइग्रेशन की जांच करना

कमरा, इंक्रीमेंटल डेटाबेस के साथ काम करता है माइग्रेशन ऐप्लिकेशन के मौजूदा डेटा को उन स्थितियों में शामिल किया जाता है जब ऐप्लिकेशन के अपडेट से डेटाबेस स्कीमा में बदलाव होता है. हालांकि, माइग्रेशन की गलत प्रोसेस की वजह से आपका ऐप्लिकेशन क्रैश हो सकता है. कंपनी या ब्रैंड अपने रूम डेटाबेस की जांच ज़रूर करें माइग्रेशन.

अपने डेटाबेस को डीबग करना

ऐसे कई टूल और प्रोसेस हैं जिनका इस्तेमाल करके अपने डेटाबेस को डीबग किया जा सकता है.

डेटाबेस इंस्पेक्टर का इस्तेमाल करें

Android Studio 4.1 और उसके बाद के वर्शन में, डेटाबेस इंस्पेक्टर की मदद से क्वेरी करें, और अपने ऐप्लिकेशन के चलने के दौरान उसके डेटाबेस में बदलाव करें. डेटाबेस Inspector, Android के साथ बंडल किए गए SQLite के वर्शन के साथ काम करता है साथ ही, इसमें रूम के साथ इस्तेमाल करने के लिए कुछ खास सुविधाएँ भी शामिल हैं:

डेटाबेस इंस्पेक्टर के बारे में ज़्यादा जानने के लिए, अपने डेटाबेस को डेटाबेस इंस्पेक्टर.

कमांड लाइन से डेटा डंप करें

Android SDK टूल में एक sqlite3 डेटाबेस टूल शामिल होता है. इसकी मदद से, आपके ऐप्लिकेशन की डेटाबेस. इसमें .dump जैसे कमांड शामिल हैं, जो तालिका और .schema SQL CREATE स्टेटमेंट को प्रिंट करने के लिए.

कमांड लाइन से, SQLite के निर्देशों को भी एक्ज़ीक्यूट किया जा सकता है, जैसा कि स्निपेट:

adb -s emulator-5554 shell
sqlite3 /data/data/your-app-package/databases/rssitems.db

ज़्यादा जानकारी के लिए, sqlite3 कमांड लाइन देखें दस्तावेज़, जो यहां उपलब्ध है SQLite वेबसाइट.

अन्य संसाधन

अपने रूम डेटाबेस की जांच करने और उसे डीबग करने के बारे में ज़्यादा जानने के लिए, इन्हें देखें अतिरिक्त संसाधन:

ब्लॉग पोस्ट

वीडियो