Capacitorలో Custom SQLite Extensionsలను ఎలా ఉపయోగించాలి
సాధారణ SQLite చాలా పనులకు సరిపోతుంది. కొన్నిసార్లు మీకు అంతకంటే ఎక్కువ అవసరం కావచ్చు.
కొన్ని నిర్దిష్ట భాషల కోసం మీకు కస్టమ్ tokenizer అవసరం కావచ్చు. మీకు కస్టమ్ math functions లేదా ప్రత్యేకమైన text processing అవసరం కావచ్చు. వీటిని loadable extensions అంటారు.
Capacitor SQLite plugin వీటిని Android మరియు iOS లలో సపోర్ట్ చేస్తుంది.
Extensions ఎందుకు ఉపయోగించాలి?
- Custom FTS5 tokenizers: సెర్చ్ కోసం టెక్స్ట్ ఎలా విడిపోవాలో నియంత్రించవచ్చు.
- Custom SQL functions: మీ డేటాకు దగ్గరగా సంక్లిష్టమైన లాజిక్ను రన్ చేయవచ్చు.
దీని అమలు (implementation) ప్లాట్ఫారమ్ను బట్టి మారుతుంది.
Android
Android సిస్టమ్ SQLite నేరుగా extensionsలను లోడ్ చేయడాన్ని సపోర్ట్ చేయదు. మీరు తప్పనిసరిగా requery backendని ఉపయోగించాలి.
- మీ variables.gradle ఫైల్లో requery ఆప్షన్ను ఎనేబుల్ చేయండి.
- మీ build.gradle ఫైల్కు JitPack రిపోజిటరీని జోడించండి.
- ప్రతి CPU ఆర్కిటెక్చర్ కోసం మీ C కోడ్ను నేటివ్ లైబ్రరీలుగా (.so ఫైల్స్) కంపైల్ చేయండి.
- ఈ ఫైల్లను jniLibs ఫోల్డర్లో ఉంచండి.
- డేటాబేస్ను ఓపెన్ చేసేటప్పుడు androidExtensions ఆప్షన్ను ఉపయోగించండి.
iOS
iOS యాప్లు రన్టైమ్లో డైనమిక్ లైబ్రరీలను లోడ్ చేయలేవు. మీరు మీ extensionను స్టాటిక్గా (statically) లింక్ చేయాలి.
- మీ C source ఫైల్ను Xcode ప్రాజెక్ట్కు జోడించండి.
- ఆ ఫైల్ కోసం -DSQLITE_CORE కంపైలర్ ఫ్లాగ్ను సెట్ చేయండి.
- మీ bridging headerలో init ఫంక్షన్ను డిక్లేర్ చేయండి.
- sqlite3_auto_extension ఉపయోగించి మీ AppDelegateలో extensionను రిజిస్టర్ చేయండి.
మీ extension కోసం ఉపయోగించే C కోడ్ ఒకేలా ఉంటుంది. కేవలం బిల్డ్ మరియు రిజిస్ట్రేషన్ దశలు మాత్రమే మారుతాయి.
ఒకసారి లోడ్ అయిన తర్వాత, మీ కస్టమ్ extension ఒక బిల్ట్-ఇన్ SQLite ఫీచర్లాగే పనిచేస్తుంది. మీరు మీ కొత్త tokenizer లేదా functionను మీ SQL స్టేట్మెంట్లలో వెంటనే ఉపయోగించవచ్చు.
కస్టమ్ extensions మీ మొబైల్ డేటాబేస్లో నేటివ్ కోడ్ యొక్క శక్తిని అందిస్తాయి.
Source: https://dev.to/capawesome/how-to-use-custom-sqlite-extensions-in-capacitor-l5k