jwallet / expo-sqlite-storage

React Native Expo SQLite module updated to support JSON extension using requery.sqlite-android library. Compatible with RxDB Premium

Home Page:https://www.npmjs.com/package/expo-sqlite-storage

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Expo SQLite Storage

ios android web expo expo go expo-sqlite sqlite-android

Important

This package will become useless once Expo SDK 50 is released. The new SDK introduces changes to their official expo-sqlite and they upgraded to a more recent SQLite version that will support JSON function such as json_extract.

Implements the original expo-sqlite with an updated version of android.database.sqlite from requery.sqlite-android which adds support for:

  • JSON1 extension
  • Common Table expressions
  • Indexes on expressions
  • Full Text Search 5
  • Generated Columns
  • DROP COLUMN support

This cannot be used in Expo GO, see the related error section.

RxDB Premium compatible

It's compatible with RxDB Premium SQLite storage:

import {
  getRxStorageSQLite,
  getSQLiteBasicsExpoSQLite,
} from "rxdb-premium/plugins/storage-sqlite";
import * as ExpoSqliteStorage from "expo-sqlite-storage";
import { createRxDatabase } from "rxdb";

const storage = getRxStorageSQLite({
  sqliteBasics: getSQLiteBasicsExpoSQLite(ExpoSqliteStorage.openDatabase),
});

const db = await createRxDatabase({
  name: storage.name,
  storage,
  multiInstance: false,
  ignoreDuplicate: true,
});
iOS Android
image image

Installation in managed Expo project

Add the package to your npm dependencies

npm install expo-sqlite-storage

or

yarn add expo-sqlite-storage

build your native apps

npx expo run:android|ios

run only the app

npx expo start --dev-client

Error

{"name":"TypeError","message":"null is not an object (evaluating 'SQLiteDatabase.exec')

Will not work inside Expo GO until the Expo team updates their SQLite database to a more recent version.

Installation in bare React Native projects

For bare React Native projects, you must ensure that you have installed and configured the expo package before continuing.

Add the package to your npm dependencies

npm install expo-sqlite-storage

or

yarn add expo-sqlite-storage

Configure for iOS

React-Native above 0.60:

Run npx pod-install after installing the npm package.

Configure for Android

About

React Native Expo SQLite module updated to support JSON extension using requery.sqlite-android library. Compatible with RxDB Premium

https://www.npmjs.com/package/expo-sqlite-storage

License:MIT License


Languages

Language:TypeScript 35.2%Language:Kotlin 32.0%Language:Objective-C 29.1%Language:Ruby 3.1%Language:JavaScript 0.6%