𝗖𝗮𝗽𝗮𝗰𝗶𝘁𝗼𝗿-ല് 𝗖𝘂𝘀𝘁𝗼𝗺 𝗦𝗤𝗟𝗶𝘁𝗲 𝗘𝘅𝘁𝗲𝗻𝘀𝗶𝗼𝗻𝘀 𝗲𝗻𝗴𝗮𝗻𝗲 𝘂𝘀𝗲 𝗰𝗵𝗲𝘆𝘆𝗮𝗺
മിക്ക ജോലികൾക്കും Standard SQLite മതിയാകും. എന്നാൽ ചിലപ്പോൾ നിങ്ങൾക്ക് കൂടുതൽ ആവശ്യമായി വന്നേക്കാം.
ചില പ്രത്യേക ഭാഷകൾക്കായി നിങ്ങൾക്ക് ഒരു custom tokenizer ആവശ്യമായി വന്നേക്കാം. അല്ലെങ്കിൽ custom math functions അല്ലെങ്കിൽ പ്രത്യേക ടെക്സ്റ്റ് പ്രോസസ്സിംഗ് ആവശ്യമായി വന്നേക്കാം. ഇവയെയാണ് loadable extensions എന്ന് വിളിക്കുന്നത്.
Capacitor SQLite പ്ലഗിൻ Android, iOS എന്നിവയിൽ ഇവയെ പിന്തുണയ്ക്കുന്നു.
എന്തുകൊണ്ടാണ് extensions ഉപയോഗിക്കുന്നത്?
- Custom FTS5 tokenizers: സെർച്ചിനായി ടെക്സ്റ്റ് എങ്ങനെ വിഭജിക്കണം എന്ന് നിയന്ത്രിക്കാം.
- Custom SQL functions: നിങ്ങളുടെ ഡാറ്റയ്ക്ക് അടുത്തായി തന്നെ സങ്കീർണ്ണമായ ലോജിക് പ്രവർത്തിപ്പിക്കാം.
പ്ലാറ്റ്ഫോമിന് അനുസരിച്ച് ഇതിന്റെ രീതികൾ മാറുന്നു.
Android
Android സിസ്റ്റം SQLite നേരിട്ട് extensions ലോഡ് ചെയ്യാൻ അനുവദിക്കുന്നില്ല. അതിനാൽ നിങ്ങൾ requery backend ഉപയോഗിക്കണം.
- നിങ്ങളുടെ variables.gradle ഫയലിൽ requery ഓപ്ഷൻ എനേബിൾ ചെയ്യുക.
- നിങ്ങളുടെ build.gradle ഫയലിൽ JitPack റെപ്പോസിറ്ററി ചേർക്കുക.
- ഓരോ CPU ആർക്കിടെക്ചറിനും വേണ്ടി നിങ്ങളുടെ C കോഡ് നേറ്റീവ് ലൈബ്രറികളാക്കി (.so ഫയലുകൾ) കംപൈൽ ചെയ്യുക.
- ഈ ഫയലുകൾ jniLibs ഫോൾഡറിൽ ഇടുക.
- ഡാറ്റാബേസ് തുറക്കുമ്പോൾ androidExtensions ഓപ്ഷൻ ഉപയോഗിക്കുക.
iOS
iOS ആപ്പുകൾക്ക് റൺടൈമിൽ ഡൈനാമിക് ലൈബ്രറികൾ ലോഡ് ചെയ്യാൻ കഴിയില്ല. അതിനാൽ നിങ്ങൾ നിങ്ങളുടെ extension സ്റ്റാറ്റിക്കായി ലിങ്ക് ചെയ്യണം.
- നിങ്ങളുടെ C സോഴ്സ് ഫയൽ Xcode പ്രോജക്റ്റിലേക്ക് ചേർക്കുക.
- ആ ഫയലിനായി -DSQLITE_CORE കംപൈലർ ഫ്ലാഗ് സെറ്റ് ചെയ്യുക.
- നിങ്ങളുടെ bridging header-ൽ init ഫംഗ്ഷൻ ഡിക്ലയർ ചെയ്യുക.
- sqlite3_auto_extension ഉപയോഗിച്ച് AppDelegate-ൽ extension രജിസ്റ്റർ ചെയ്യുക.
നിങ്ങളുടെ extension-നുള്ള C കോഡ് മാറ്റമില്ലാതെ തുടരും. ബിൽഡ് ചെയ്യുന്നതിനും രജിസ്റ്റർ ചെയ്യുന്നതിനുമുള്ള ഘട്ടങ്ങൾ മാത്രമേ മാറുന്നുള്ളൂ.
ഒരിക്കൽ ലോഡ് ചെയ്തുകഴിഞ്ഞാൽ, നിങ്ങളുടെ custom extension ഒരു built-in SQLite ഫീച്ചർ പോലെ തന്നെ പ്രവർത്തിക്കും. നിങ്ങളുടെ പുതിയ tokenizer അല്ലെങ്കിൽ function ഉടൻ തന്നെ SQL സ്റ്റേറ്റ്മെന്റുകളിൽ ഉപയോഗിക്കാം.
കസ്റ്റം extensions നിങ്ങളുടെ മൊബൈൽ ഡാറ്റാബേസിനുള്ളിൽ നേറ്റീവ് കോഡിന്റെ കരുത്ത് നൽകുന്നു.
Source: https://dev.to/capawesome/how-to-use-custom-sqlite-extensions-in-capacitor-l5k