Capacitor में Custom SQLite Extensions का उपयोग कैसे करें
अधिकांश कार्यों के लिए Standard SQLite पर्याप्त है। कभी-कभी आपको इससे अधिक की आवश्यकता होती है।
आपको विशिष्ट भाषाओं के लिए एक custom tokenizer की आवश्यकता हो सकती है। आपको custom math functions या विशेष text processing की आवश्यकता हो सकती है। इन्हें loadable extensions कहा जाता है।
Capacitor SQLite plugin Android और iOS पर इनका समर्थन करता है।
Extensions का उपयोग क्यों करें?
- Custom FTS5 tokenizers: खोज (search) के लिए टेक्स्ट कैसे विभाजित होता है, इसे नियंत्रित करें।
- Custom SQL functions: अपने डेटा के करीब जटिल लॉजिक (logic) चलाएं।
इसका कार्यान्वयन (implementation) प्लेटफॉर्म के अनुसार अलग-अलग होता है।
Android
Android system SQLite सीधे extensions लोड करने का समर्थन नहीं करता है। आपको requery backend का उपयोग करना होगा।
- अपनी variables.gradle फ़ाइल में requery विकल्प को सक्षम (enable) करें।
- अपनी build.gradle फ़ाइल में JitPack repository जोड़ें।
- प्रत्येक CPU architecture के लिए अपने C code को native libraries (.so files) में कंपाइल करें।
- इन फ़ाइलों को jniLibs फ़ोल्डर में रखें।
- डेटाबेस खोलते समय androidExtensions विकल्प का उपयोग करें।
iOS
iOS ऐप्स runtime पर dynamic libraries लोड नहीं कर सकते। आपको अपने extension को statically लिंक करना होगा।
- अपनी C source file को अपने Xcode project में जोड़ें।
- उस फ़ाइल के लिए -DSQLITE_CORE compiler flag सेट करें।
- अपने bridging header में init function को डिक्लेयर (declare) करें।
- sqlite3_auto_extension का उपयोग करके अपने AppDelegate में extension को रजिस्टर करें।
आपके extension के लिए C code वही रहता है। केवल build और registration के चरण बदलते हैं।
एक बार लोड होने के बाद, आपका custom extension बिल्कुल एक built-in SQLite feature की तरह काम करता है। आप अपने नए tokenizer या function का उपयोग अपने SQL statements में तुरंत कर सकते हैं।
Custom extensions आपको अपने मोबाइल डेटाबेस के भीतर native code की शक्ति प्रदान करते हैं।
Source: https://dev.to/capawesome/how-to-use-custom-sqlite-extensions-in-capacitor-l5k