SQLITE DATABASE
@capacitor-community/sqlite
CAPACITOR 3 🚧
Capacitor community plugin for Native and Electron SQLite Databases. In Native databases could be encrypted with SQLCipher
Maintainers
Maintainer | GitHub | Social |
---|
Quéau Jean Pierre | jepiqueau | |
NEXT FOR CAPACITOR 3 🚧 (Master)
The refactor release has been upgraded to @capacitor/core@3.0.0-beta.1
.
🚨 !!! ONLY iOS and Android plugins have been upgraded !!! 🚨
🚨 Since release 3.0.0-beta.11 ->> 🚨
-
Checking of types has been removed in all methods of the plugin
both iOS & Android. This has been achieved to allow the use of
others RDBMS types.
The type checking is now under the responsability of the developers.
-
NULL values are now returned as null
-
values for the query
method is now an Array of any.
-
option to disable transaction
for the execute
, executeSet
, run
.
🚨 Since release 3.0.0-beta.11 <<- 🚨
The test has been achieved on:
REFACTOR 🚀 (Move to branch 2.9.x)
The refactor offers now (since 2.9.0-beta.1
) all the features that the previous was offering. It has been a quite heavy process, hoping that the developpers will take benefit from it.
The main reasons for it:
- multiple database connections
- db connector allowing for easy commands
db.open(), db.close, ...
- improve the response time of the encrypted database by removing the internal open and close database for each sqlite query
- moving to the latest
androidx.sqlite.db.xxx
- offering encryption for Electron platform by using
@journeyapps/sqlcipher
on MacOs, !!! NOT ON WINDOWS !!! - cleaning and aligning the code between platforms
- allowing developers to develop
typeorm
or spatialite
drivers.
This was discussed lengthly in issue#1 and issue#52
Refactor available for Android
, iOS
and Electron
platforms.
The test has been achieved on:
Other frameworks will be tested later
@INITIAL 🛑 (Move to branch 2.4.x)
The 2.4.x
is now 🛑 NOT MAINTAINED ANYMORE 🛑.
To install it
npm i --save @capacitor-community/sqlite@initial
The test has been achieved on:
Browser Support
The plugin follows the guidelines from the Capacitor Team
,
meaning that it will not work in IE11 without additional JavaScript transformations, e.g. with Babel.
Installation
npm install @capacitor-community/sqlite@next
npm run build
npx cap sync
npx cap add android
npx cap add ios
// npx cap add @capacitor-community/electron not working
IOS
- on iOS, no further steps needed.
Android
- On Android, no further steps needed.
Electron 🚧 (NOT WORKING YET)
- On Electron, go to the Electron folder of YOUR_APPLICATION
npm install --save @journeyapps/sqlcipher
Build & Run
npm run build
npx cap copy
npx cap copy @capacitor-community/electron
IOS
npx cap open ios
Android
npx cap open android
Electron 🚧 (NOT WORKING YET)
npx cap open @capacitor-community/electron
Issues
When you will find issues, please report them with the NEXT
word at the start of the issue title.
issues
Configuration
No configuration required for this plugin
Supported methods
Name | Android | iOS | Electron Mac | Electron Windows | Web |
---|
createConnection | ✅ | ✅ | 🚧 | 🚧 | ❌ |
closeConnection | ✅ | ✅ | 🚧 | 🚧 | ❌ |
isConnection | ✅ | ✅ | 🚧 | 🚧 | ❌ |
open (non-encrypted DB) | ✅ | ✅ | 🚧 | 🚧 | ❌ |
open (encrypted DB) | ✅ | ✅ | 🚧 | 🚧 | ❌ |
close | ✅ | ✅ | 🚧 | 🚧 | ❌ |
execute | ✅ | ✅ | 🚧 | 🚧 | ❌ |
executeSet | ✅ | ✅ | 🚧 | 🚧 | ❌ |
run | ✅ | ✅ | 🚧 | 🚧 | ❌ |
query | ✅ | ✅ | 🚧 | 🚧 | ❌ |
deleteDatabase | ✅ | ✅ | 🚧 | 🚧 | ❌ |
importFromJson | ✅ | ✅ | 🚧 | 🚧 | ❌ |
exportToJson | ✅ | ✅ | 🚧 | 🚧 | ❌ |
createSyncTable | ✅ | ✅ | 🚧 | 🚧 | ❌ |
setSyncDate | ✅ | ✅ | 🚧 | 🚧 | ❌ |
getSyncDate | ✅ | ✅ | 🚧 | 🚧 | ❌ |
isJsonValid | ✅ | ✅ | 🚧 | 🚧 | ❌ |
isDBExists | ✅ | ✅ | 🚧 | 🚧 | ❌ |
addUpgradeStatement | ✅ | ✅ | 🚧 | 🚧 | ❌ |
copyFromAssets | ✅ | ✅ | 🚧 | 🚧 | ❌ |
isDBOpen | ✅ | ✅ | 🚧 | 🚧 | ❌ |
isDatabase | ✅ | ✅ | 🚧 | 🚧 | ❌ |
isTableExists | ✅ | ✅ | 🚧 | 🚧 | ❌ |
getDatabaseList | ✅ | ✅ | 🚧 | 🚧 | ❌ |
addSQLiteSuffix | ✅ | ✅ | 🚧 | 🚧 | ❌ |
deleteOldDatabases | ✅ | ✅ | 🚧 | 🚧 | ❌ |
checkConnectionsConsistency | ✅ | ✅ | 🚧 | 🚧 | ❌ |
Supported SQLite Types
-Datatypes In SQLite Version 3
Documentation
API
Framework's Usage
Applications demonstrating the use of the plugin
Ionic/Angular
Ionic/React (to come later)
Ionic/Vue (to come later)
Vue (to come later)
Usage
Dependencies
The IOS and Android codes are using SQLCipher
allowing for database encryption
The Electron code use @journeyapps/sqlcipher
allowing for database encryption for MacOS 🚨 !!! NOT for Windows !!! 🚨
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!