Capacitor ਵਿੱਚ Custom SQLite Extensions ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ
Standard SQLite ਜ਼ਿਆਦਾਤਰ ਕੰਮਾਂ ਲਈ ਕੰਮ ਕਰਦਾ ਹੈ। ਕਦੇ-ਕਦੇ ਤੁਹਾਨੂੰ ਇਸ ਤੋਂ ਵੱਧ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
ਤੁਹਾਨੂੰ ਖਾਸ ਭਾਸ਼ਾਵਾਂ ਲਈ ਇੱਕ custom tokenizer ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। ਤੁਹਾਨੂੰ custom math functions ਜਾਂ ਵਿਸ਼ੇਸ਼ text processing ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। ਇਹਨਾਂ ਨੂੰ loadable extensions ਕਿਹਾ ਜਾਂਦਾ ਹੈ।
Capacitor SQLite plugin Android ਅਤੇ iOS 'ਤੇ ਇਹਨਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
Why use extensions?
- Custom FTS5 tokenizers: ਸਰਚ ਲਈ ਟੈਕਸਟ ਕਿਵੇਂ ਵੰਡਿਆ ਜਾਂਦਾ ਹੈ, ਇਸ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ।
- Custom SQL functions: ਆਪਣੇ ਡੇਟਾ ਦੇ ਨੇੜੇ ਹੀ ਗੁੰਝਲਦਾਰ logic ਚਲਾਓ।
ਇਸਦਾ ਲਾਗੂਕਰਨ ਪਲੇਟਫਾਰਮ ਅਨੁਸਾਰ ਵੱਖਰਾ ਹੁੰਦਾ ਹੈ।
Android
Android system SQLite ਸਿੱਧੇ ਤੌਰ 'ਤੇ extensions ਨੂੰ ਲੋਡ ਕਰਨ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ। ਤੁਹਾਨੂੰ requery backend ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪਵੇਗੀ।
- ਆਪਣੀ variables.gradle ਫਾਈਲ ਵਿੱਚ requery option ਨੂੰ enable ਕਰੋ।
- ਆਪਣੀ build.gradle ਫਾਈਲ ਵਿੱਚ JitPack repository ਨੂੰ ਜੋੜੋ।
- ਹਰੇਕ CPU architecture ਲਈ ਆਪਣੇ C code ਨੂੰ native libraries (.so files) ਵਿੱਚ compile ਕਰੋ।
- ਇਹਨਾਂ ਫਾਈਲਾਂ ਨੂੰ jniLibs ਫੋਲਡਰ ਵਿੱਚ ਰੱਖੋ।
- ਜਦੋਂ ਤੁਸੀਂ database ਖੋਲ੍ਹਦੇ ਹੋ ਤਾਂ androidExtensions option ਦੀ ਵਰਤੋਂ ਕਰੋ।
iOS
iOS ਐਪਸ runtime 'ਤੇ dynamic libraries ਨੂੰ ਲੋਡ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ। ਤੁਹਾਨੂੰ ਆਪਣੀ extension ਨੂੰ statically link ਕਰਨਾ ਪਵੇਗਾ।
- ਆਪਣੀ C source file ਨੂੰ ਆਪਣੇ Xcode project ਵਿੱਚ ਜੋੜੋ।
- ਉਸ ਫਾਈਲ ਲਈ -DSQLITE_CORE compiler flag ਸੈੱਟ ਕਰੋ।
- ਆਪਣੇ bridging header ਵਿੱਚ init function ਨੂੰ declare ਕਰੋ।
- sqlite3_auto_extension ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ AppDelegate ਵਿੱਚ extension ਨੂੰ register ਕਰੋ।
ਤੁਹਾਡੀ extension ਲਈ C code ਉਹੀ ਰਹਿੰਦਾ ਹੈ। ਸਿਰਫ਼ build ਅਤੇ registration ਦੇ ਪੜਾਅ ਬਦਲਦੇ ਹਨ।
ਇੱਕ ਵਾਰ ਲੋਡ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਡੀ custom extension ਬਿਲਟ-ਇਨ SQLite ਫੀਚਰ ਵਾਂਗ ਹੀ ਕੰਮ ਕਰਦੀ ਹੈ। ਤੁਸੀਂ ਆਪਣੇ SQL statements ਵਿੱਚ ਆਪਣੇ ਨਵੇਂ tokenizer ਜਾਂ function ਦੀ ਤੁਰੰਤ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।
Custom extensions ਤੁਹਾਨੂੰ ਤੁਹਾਡੇ ਮੋਬਾਈਲ ਡੇਟਾਬੇਸ ਦੇ ਅੰਦਰ native code ਦੀ ਸ਼ਕਤੀ ਦਿੰਦੀਆਂ ਹਨ।
Source: https://dev.to/capawesome/how-to-use-custom-sqlite-extensions-in-capacitor-l5k