डेटाबेस जांचने वाले टूल की मदद से, अपने डेटाबेस को डीबग करना

डेटाबेस इंस्पेक्टर की मदद से, ऐप्लिकेशन के चलने के दौरान ऐप्लिकेशन के डेटाबेस की जांच की जा सकती है, क्वेरी की जा सकती है, और उनमें बदलाव किया जा सकता है. यह खास तौर पर डेटाबेस डीबग करने के लिए मददगार है. डेटाबेस इंस्पेक्टर, सामान्य SQLite और SQLite पर बनी लाइब्रेरी के साथ काम करता है. जैसे, Room.

डेटाबेस इंस्पेक्टर खोलना

डेटाबेस इंस्पेक्टर में डेटाबेस खोलने के लिए, यह तरीका अपनाएं:

  1. एपीआई लेवल 26 या उसके बाद के लेवल पर काम करने वाले एम्युलेटर या कनेक्ट किए गए डिवाइस पर अपना ऐप्लिकेशन चलाएं.

  2. मेन्यू बार में जाकर, व्यू > टूल विंडो > ऐप्लिकेशन की जांच चुनें.

  3. डेटाबेस इंस्पेक्टर टैब चुनें.

  4. मेन्यू से, चल रहे ऐप्लिकेशन की प्रोसेस चुनें.

  5. फ़िलहाल चल रहे ऐप्लिकेशन में मौजूद डेटाबेस, डेटाबेस पेन में दिखते हैं. उस डेटाबेस के नोड को बड़ा करें जिसकी जांच करनी है.

डेटा देखना और उसमें बदलाव करना

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

डेटाबेस इंस्पेक्टर विंडो का स्क्रीनशॉट.
पहली इमेज. डेटाबेस इंस्पेक्टर विंडो.

किसी टेबल में मौजूद डेटा में बदलाव करने के लिए, यह तरीका अपनाएं:

  1. किसी सेल पर दो बार क्लिक करें.
  2. कोई नई वैल्यू टाइप करें.
  3. Enter दबाएं.

अगर आपका ऐप्लिकेशन Room का इस्तेमाल करता है और आपका यूज़र इंटरफ़ेस (यूआई) डेटाबेस पर नज़र रखता है, जैसे कि LiveData या Flow, तो डेटा में किए गए सभी बदलाव, आपके चालू ऐप्लिकेशन में तुरंत दिखते हैं. ऐसा न होने पर, बदलाव सिर्फ़ तब दिखते हैं, जब आपका ऐप्लिकेशन डेटाबेस से बदले गए डेटा को अगली बार पढ़ता है.

लाइव डेटाबेस में हुए बदलाव देखना

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

इसके अलावा, डेटा को मैन्युअल तरीके से अपडेट करने के लिए, इंस्पेक्टर विंडो में सबसे ऊपर मौजूद टेबल रीफ़्रेश करें बटन पर क्लिक करें.

अपने डेटाबेस से क्वेरी करना

ऐप्लिकेशन के चालू होने पर, डेटाबेस इंस्पेक्टर आपके ऐप्लिकेशन के डेटाबेस के ख़िलाफ़ क्वेरी चला सकता है. अगर आपका ऐप्लिकेशन Room का इस्तेमाल करता है, तो यह टूल DAO क्वेरी का इस्तेमाल कर सकता है. हालांकि, यह कस्टम एसक्यूएल क्वेरी के साथ भी काम करता है.

DAO क्वेरी चलाना

अगर आपका ऐप्लिकेशन Room का इस्तेमाल करता है, तो Android Studio, गटर ऐक्शन उपलब्ध कराता है. इनकी मदद से, DAO क्लास में पहले से तय की गई क्वेरी के तरीकों को तुरंत चलाया जा सकता है. ये कार्रवाइयां तब की जा सकती हैं, जब आपका ऐप्लिकेशन चल रहा हो और IDE में Database Inspector खुला हो.

डीएओ में किसी क्वेरी के तरीके को चलाने के लिए, उसके @Query एनोटेशन के बगल में मौजूद, डेटाबेस इंस्पेक्टर में SQLite स्टेटमेंट चलाएं बटन पर क्लिक करें.

DAO गटर ऐक्शन का स्क्रीनशॉट.
दूसरी इमेज. डीएओ क्वेरी गटर ऐक्शन.

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

कस्टम एसक्यूएल क्वेरी चलाना

ऐप्लिकेशन के चालू होने पर, ऐप्लिकेशन के डेटाबेस के ख़िलाफ़ कस्टम SQL क्वेरी चलाने के लिए, डेटाबेस इंस्पेक्टर का इस्तेमाल भी किया जा सकता है.

डेटाबेस से क्वेरी करने के लिए, यह तरीका अपनाएं:

  1. डेटाबेस पैनल में सबसे ऊपर मौजूद, नई क्वेरी टैब खोलें पर क्लिक करें. इससे, इंस्पेक्टर विंडो में एक नया टैब खुलेगा.

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

  3. नई क्वेरी टैब में सबसे ऊपर मौजूद टेक्स्ट फ़ील्ड में, अपनी कस्टम एसक्यूएल क्वेरी टाइप करें.

  4. चलाएं पर क्लिक करें.

इसके अलावा, क्वेरी के इतिहास की सुविधा का इस्तेमाल करके, वह क्वेरी चलाई जा सकती है जिसका इस्तेमाल आपने पहले किया था:

  1. चुने गए डेटाबेस के लिए, पहले चलाई गई क्वेरी की सूची देखने के लिए, क्वेरी का इतिहास दिखाएं क्वेरी का इतिहास दिखाने वाला बटन
बटन पर क्लिक करें.

    क्वेरी के इतिहास का ड्रॉप-डाउन दिखाने वाला स्क्रीनशॉट.
    चौथी इमेज. क्वेरी के इतिहास का मेन्यू.
  2. सूची में मौजूद किसी क्वेरी पर क्लिक करके, एडिटर में पूरी क्वेरी की झलक देखें. इसके बाद, एडिटर में क्वेरी कॉपी करने के लिए, Enter दबाएं.

  3. स्टेटमेंट को लागू करने के लिए, चलाएं पर क्लिक करें.

नई क्वेरी टैब में दिखाए गए क्वेरी के नतीजे, सिर्फ़ पढ़े जा सकते हैं. इनमें बदलाव नहीं किया जा सकता. हालांकि, UPDATE, INSERT या DELETE जैसे मॉडिफ़ायर स्टेटमेंट चलाने के लिए, कस्टम एसक्यूएल क्वेरी फ़ील्ड का इस्तेमाल किया जा सकता है.

अगर आपका ऐप्लिकेशन Room का इस्तेमाल करता है और आपका यूज़र इंटरफ़ेस (यूआई) डेटाबेस को मॉनिटर करता है, जैसे कि LiveData या Flow के साथ, तो डेटा में किए गए कोई भी बदलाव, आपके चालू ऐप्लिकेशन में तुरंत दिखते हैं. ऐसा न होने पर, बदलाव सिर्फ़ तब दिखते हैं, जब आपका ऐप्लिकेशन डेटाबेस से बदले गए डेटा को अगली बार पढ़ता है.

ऑफ़लाइन मोड

Android Studio 4.2 और इसके बाद के वर्शन में, प्रोसेस के डिसकनेक्ट होने के बाद भी अपने ऐप्लिकेशन के डेटाबेस की जांच की जा सकती है. इससे ऐप्लिकेशन के क्रैश होने के बाद, उसे डीबग करना आसान हो जाता है.

कनेक्शन बंद होने पर, Database Inspector आपके डेटाबेस डाउनलोड करता है और उन्हें ऑफ़लाइन मोड में आपके लिए उपलब्ध कराता है. ऑफ़लाइन होने पर भी, टेबल खोली जा सकती हैं और क्वेरी चलाई जा सकती हैं.

लाइव ऐप्लिकेशन प्रोसेस से फिर से कनेक्ट करने पर, Database Inspector ऑफ़लाइन मोड से हट जाता है. इसके बाद, आपको सिर्फ़ डिवाइस पर मौजूद डेटा दिखता है. दूसरे शब्दों में, ऐप्लिकेशन प्रोसेस से फिर से कनेक्ट होने पर, ऑफ़लाइन मोड में दिखाया गया डेटा सेव नहीं होता. इस सीमा की वजह से, ऑफ़लाइन मोड में डेटा में बदलाव नहीं किया जा सकता. साथ ही, बदलाव करने वाले SQL स्टेटमेंट भी नहीं चलाए जा सकते.

ऑफ़लाइन मोड में किसी डेटाबेस को देखते समय, प्रोसेस के नाम में [DETACHED] शामिल होता है. इससे पता चलता है कि इंस्पेक्टर अब प्रोसेस से नहीं जुड़ा है. साथ ही, डेटाबेस आइकॉन डेटाबेस
ऑफ़लाइन है ऑफ़लाइन स्थिति दिखाता है. इसे पांचवीं इमेज में दिखाया गया है.

ऑफ़लाइन मोड में डेटाबेस इंस्पेक्टर
पांचवीं इमेज. ऑफ़लाइन मोड में डेटाबेस इंस्पेक्टर.

डेटाबेस कनेक्शन खुले रखें

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

इसके अलावा, डेटाबेस कनेक्शन बंद होने से रोकने के लिए, डेटाबेस पैनल में सबसे ऊपर मौजूद, डेटाबेस कनेक्शन चालू रखें को बंद से चालू पर टॉगल करें.

डेटाबेस इंस्पेक्टर से डेटा एक्सपोर्ट करना

डेटाबेस इंस्पेक्टर से डेटाबेस, टेबल, और क्वेरी के नतीजे एक्सपोर्ट किए जा सकते हैं. ऐसा डेटा को सेव करने, शेयर करने या स्थानीय तौर पर फिर से बनाने के लिए किया जाता है. Android Studio में किसी ऐप्लिकेशन प्रोजेक्ट को खोलने और डेटाबेस इंस्पेक्टर में उस प्रोजेक्ट के ऐप्लिकेशन की जांच करने के बाद, डेटा को इनमें से किसी एक तरीके से एक्सपोर्ट किया जा सकता है:

  • डेटाबेस पैनल में कोई डेटाबेस या टेबल चुनें. इसके बाद, पैनल में सबसे ऊपर मौजूद फ़ाइल में एक्सपोर्ट करें पर क्लिक करें.
  • डेटाबेस पैनल में मौजूद किसी डेटाबेस या टेबल पर राइट क्लिक करें. इसके बाद, कॉन्टेक्स्ट मेन्यू से फ़ाइल में एक्सपोर्ट करें चुनें.
  • किसी टैब में टेबल या क्वेरी के नतीजों की जांच करते समय, टेबल या क्वेरी के नतीजों के ऊपर मौजूद, फ़ाइल में एक्सपोर्ट करें पर क्लिक करें.

एक्सपोर्ट करने की कार्रवाई चुनने के बाद, डेटाबेस एक्सपोर्ट करें डायलॉग का इस्तेमाल करें. इससे आपको फ़ाइनल चरणों को पूरा करने में मदद मिलेगी. यह डायलॉग, इमेज 6 में दिखाया गया है.

डेटाबेस, टेबल या क्वेरी के नतीजे एक्सपोर्ट करने के आधार पर, आपके पास डेटा को इनमें से एक या एक से ज़्यादा फ़ॉर्मैट में एक्सपोर्ट करने का विकल्प होता है: DB, SQL या CSV.

डेटाबेस एक्सपोर्ट करने का डायलॉग बॉक्स

छठी इमेज. डेटाबेस एक्सपोर्ट करने का डायलॉग बॉक्स.

अन्य संसाधन

Database Inspector के बारे में ज़्यादा जानने के लिए, यहां दिए गए अतिरिक्त संसाधन देखें:

ब्लॉग पोस्ट

वीडियो