@capgo/capacitor-data-storage-sqlite

中文文档
8.0.60发布于 2026/11/09MPL-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 4.4万

SQLite Storage of key/value strings pair

原始使用文档
文档目录47 节
  1. ➡️ Get started for free
  2. Key features
  3. DATA STORAGE SQLITE
  4. Why Data Storage SQLite?
  5. Maintainers
  6. Browser Support
  7. Documentation
  8. Compatibility
  9. Installation
  10. Configuration
  11. Supported methods
  12. Documentation
  13. Applications demonstrating the use of the plugin
  14. Ionic/Angular
  15. Ionic/React
  16. React
  17. Ionic/Vue
  18. Vue
  19. Usage
  20. Dependencies
  21. Database encryption passphrases
  22. Contributors ✨
  23. openStore(...)
  24. closeStore(...)
  25. isStoreOpen(...)
  26. isStoreExists(...)
  27. deleteStore(...)
  28. setTable(...)
  29. set(...)
  30. get(...)
  31. remove(...)
  32. clear()
  33. iskey(...)
  34. keys()
  35. values()
  36. filtervalues(...)
  37. keysvalues()
  38. isTable(...)
  39. tables()
  40. deleteTable(...)
  41. importFromJson(...)
  42. isJsonValid(...)
  43. exportToJson()
  44. vacuum()
  45. getPluginVersion()
  46. Interfaces
  47. Type Aliases

Store key and value strings in SQLite from your Capacitor app, with multiple stores and tables and optional encryption on iOS and Android. A simple, persistent alternative to localStorage.

Capgo - Build Capacitor apps with AI, ship updates instantly

Capgo: push fixes to your Capacitor users in minutes, build signed iOS and Android apps without a Mac, and roll back in one click.

➡️ Get started for free

14-day unlimited free trial. No credit card required

🤖 Building with an AI coding agent? Install Capgo skills so Claude Code, Codex, Cursor, Copilot, or Gemini CLI know how to install and use @capgo/capacitor-data-storage-sqlite in your Capacitor app: npx skills add Cap-go/capgo-skills. Then ask your agent: "Add @capgo/capacitor-data-storage-sqlite to my Capacitor app and wire it up." Agent setup guides · Hosted MCP

@capgo/capacitor-data-storage-sqlite for Capacitor apps

Key features

  • Key value API: set(), get(), remove(), clear(), iskey(), keys(), values() and keysvalues().
  • Stores and tables: openStore(), setTable(), tables(), deleteTable() and deleteStore().
  • Encryption: optional encrypted stores on iOS and Android via SQLCipher.
  • JSON import and export: importFromJson(), isJsonValid() and exportToJson().
  • Filtering: filtervalues() returns values for keys that match a filter.
  • Platforms: iOS, Android and Web. Web stores data in the browser with the same key value API.


DATA STORAGE SQLITE

@capgo/capacitor-data-storage-sqlite


CAPACITOR 6



Note from the Owner


This Plugin has been transferred to Capgo org after his original creator @jepiqueau decide to retire.
We will forever be thankful for the work he did.


Capacitor Data Storage SQlite Plugin is a custom Native Capacitor plugin providing a key-value permanent store for simple data of type string only to SQLite on IOS, Android and Electron platforms and to IndexDB for the Web platform.

Why Data Storage SQLite?

A maintained, community-driven plugin providing simple key-value storage backed by SQLite. Originally created by @jepiqueau and now maintained by Capgo:

  • Simple API - Easy key-value storage interface for string data
  • Cross-platform - Works on iOS, Android, Electron, and Web (IndexedDB)
  • SQLite backing - Reliable, encrypted storage on native platforms
  • Import/Export - JSON import/export for data migration
  • Multi-table support - Organize data across multiple tables

Perfect for apps needing simple, reliable local storage without complex SQL queries.


Maintainers

MaintainerGitHubSocial
Martin Donadieuriderx
Quéau Jean Pierrejepiqueau

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.

Documentation

The most complete doc is available here: https://capgo.app/docs/plugins/data-storage-sqlite/

Compatibility

Plugin versionCapacitor compatibilityMaintained
v8.*.*v8.*.*✅
v7.*.*v7.*.*On demand
v6.*.*v6.*.*❌
v5.*.*v5.*.*❌

Note: The major version of this plugin follows the major version of Capacitor. Use the version that matches your Capacitor installation (e.g., plugin v8 for Capacitor 8). Only the latest major version is actively maintained.

Installation

You can use our AI-Assisted Setup to install the plugin. Add the Capgo skills to your AI tool using the following command:

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

Then use the following prompt:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-data-storage-sqlite` plugin in my project.

If you prefer Manual Setup, install the plugin by running the following commands and follow the platform-specific instructions below:

npm install --save @capgo/capacitor-data-storage-sqlite
npx cap sync
  • On iOS, no further steps are needed.

  • On Android, no further steps are needed.

  • On Web,

npm install --save localforage
  • On Electron
npm install --save @capacitor-community/electron
npx cap add @capacitor-community/electron

Go to the Electron folder of your application

cd electron
npm install --save sqlite3
npm install --save-dev @types/sqlite3
npm run build
cd ..
npx cap sync @capacitor-community/electron

Then build YOUR_APPLICATION

npm run build
npx cap copy
npx cap copy @capacitor-community/electron
npx cap open ios
npx cap open android
npx cap open @capacitor-community/electron
ionic serve

Configuration

No configuration required for this plugin

Supported methods

NameAndroidiOSElectronWeb
openStore (non-encrypted DB)✅✅✅✅
openStore (encrypted DB)✅✅❌❌
closeStore✅✅✅❌
isStoreOpen✅✅✅❌
isStoreExists✅✅✅❌
deleteStore✅✅✅❌
setTable✅✅✅✅
set✅✅✅✅
get✅✅✅✅
iskey✅✅✅✅
keys✅✅✅✅
values✅✅✅✅
filtervalues✅✅✅✅
keysvalues✅✅✅✅
remove✅✅✅✅
clear✅✅✅✅
isTable✅✅✅✅
tables✅✅✅✅
deleteTable✅✅✅❌
isJsonValid✅✅✅✅
importFromJson✅✅✅✅
exportToJson✅✅✅✅

Documentation

Applications demonstrating the use of the plugin

Ionic/Angular

Ionic/React

React

Ionic/Vue

Vue

Usage

Dependencies

The IOS & Android code use SQLCipher allowing for database encryption. The Android code is now based on androidx.sqlite. The database is not closed anymore after each transaction for performance improvement. You must manage the close of the database before opening a new database. The Web code use localforage package to store the datastore in the Browser. The Electron code use sqlite3package

Database encryption passphrases

On iOS and Android, encrypted stores use SQLCipher passphrases from the plugin Global defaults (test secret / test new secret) unless you configure your own.

Recommended (Capacitor CLI apps): set passphrases in capacitor.config.ts so they are not patched inside node_modules:

import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  plugins: {
    CapgoCapacitorDataStorageSqlite: {
      encryptionSecret: 'my-production-passphrase',
      encryptionNewSecret: 'my-next-passphrase',
    },
  },
};

export default config;

Then use openStore with encrypted: true and mode set to secret, encryption, or newsecret as described in the API docs.

Advanced: the built-in defaults live in the plugin package (not in your android/ app tree):

  • Android: node_modules/@capgo/capacitor-data-storage-sqlite/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/Global.java
  • iOS: node_modules/@capgo/capacitor-data-storage-sqlite/ios/Sources/CapgoCapacitorDataStorageSqlitePlugin/Global.swift

Avoid editing those files directly; they are overwritten on install. Prefer capacitor.config or a fork of the plugin.

To open an encrypted .db in a desktop SQLCipher tool, use the same passphrase you configured as encryptionSecret (or the current secret after a newsecret rekey).

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Jean Pierre Quéau

💻

Matthew Burke

📖

Kevin van Schaijk

💻

Andy Garbett

📖

openStore(...)

openStore(options: capOpenStorageOptions) => Promise<void>

Open a store

ParamTypeDescription
optionscapOpenStorageOptions: capOpenStorageOptions

Since: 0.0.1


closeStore(...)

closeStore(options: capStorageOptions) => Promise<void>

Close the Store

ParamTypeDescription
optionscapStorageOptions: capStorageOptions

Since: 3.0.0


isStoreOpen(...)

isStoreOpen(options: capStorageOptions) => Promise<capDataStorageResult>

Check if the Store is opened

ParamTypeDescription
optionscapStorageOptions: capStorageOptions

Returns: Promise<capDataStorageResult>

Since: 3.0.0


isStoreExists(...)

isStoreExists(options: capStorageOptions) => Promise<capDataStorageResult>

Check if the Store exists

ParamTypeDescription
optionscapStorageOptions: capStorageOptions

Returns: Promise<capDataStorageResult>

Since: 3.0.0


deleteStore(...)

deleteStore(options: capOpenStorageOptions) => Promise<void>

Delete a store

ParamTypeDescription
optionscapOpenStorageOptions: capOpenStorageOptions

Since: 0.0.1


setTable(...)

setTable(options: capTableStorageOptions) => Promise<void>

Set or Add a table to an existing store

ParamTypeDescription
optionscapTableStorageOptions: capTableStorageOptions

Since: 0.0.1


set(...)

set(options: capDataStorageOptions) => Promise<void>

Store a data with given key and value

ParamTypeDescription
optionscapDataStorageOptions: capDataStorageOptions

Since: 0.0.1


get(...)

get(options: capDataStorageOptions) => Promise<capValueResult>

Retrieve a data value for a given data key

ParamTypeDescription
optionscapDataStorageOptions: capDataStorageOptions

Returns: Promise<capValueResult>

Since: 0.0.1


remove(...)

remove(options: capDataStorageOptions) => Promise<void>

Remove a data with given key

ParamTypeDescription
optionscapDataStorageOptions: capDataStorageOptions

Since: 0.0.1


clear()

clear() => Promise<void>

Clear the Data Store (delete all keys)

Since: 0.0.1


iskey(...)

iskey(options: capDataStorageOptions) => Promise<capDataStorageResult>

Check if a data key exists

ParamTypeDescription
optionscapDataStorageOptions: capDataStorageOptions

Returns: Promise<capDataStorageResult>

Since: 0.0.1


keys()

keys() => Promise<capKeysResult>

Get the data key list

Returns: Promise<capKeysResult>

Since: 0.0.1


values()

values() => Promise<capValuesResult>

Get the data value list

Returns: Promise<capValuesResult>

Since: 0.0.1


filtervalues(...)

filtervalues(options: capFilterStorageOptions) => Promise<capValuesResult>

Get the data value list for filter keys

ParamTypeDescription
optionscapFilterStorageOptions: capFilterStorageOptions

Returns: Promise<capValuesResult>

Since: 2.4.2


keysvalues()

keysvalues() => Promise<capKeysValuesResult>

Get the data key/value pair list

Returns: Promise<capKeysValuesResult>

Since: 0.0.1


isTable(...)

isTable(options: capTableStorageOptions) => Promise<capDataStorageResult>

Check if a table exists

ParamTypeDescription
optionscapTableStorageOptions: capTableStorageOptions

Returns: Promise<capDataStorageResult>

Since: 3.0.0


tables()

tables() => Promise<capTablesResult>

Get the table list for the current store

Returns: Promise<capTablesResult>

Since: 3.0.0


deleteTable(...)

deleteTable(options: capTableStorageOptions) => Promise<void>

Delete a table

ParamTypeDescription
optionscapTableStorageOptions: capTableStorageOptions

Since: 3.0.0


importFromJson(...)

importFromJson(options: capStoreImportOptions) => Promise<capDataStorageChanges>

Import a database From a JSON

ParamType
optionscapStoreImportOptions

Returns: Promise<capDataStorageChanges>

Since: 3.2.0


isJsonValid(...)

isJsonValid(options: capStoreImportOptions) => Promise<capDataStorageResult>

Check the validity of a JSON Object

ParamType
optionscapStoreImportOptions

Returns: Promise<capDataStorageResult>

Since: 3.2.0


exportToJson()

exportToJson() => Promise<capStoreJson>

Export the given database to a JSON Object

Returns: Promise<capStoreJson>

Since: 3.2.0


vacuum()

vacuum() => Promise<void>

Rebuild the current SQLite store to reclaim unused disk space.

Since: 8.0.32


getPluginVersion()

getPluginVersion() => Promise<{ version: string; }>

Get the native Capacitor plugin version

Returns: Promise<{ version: string; }>


Interfaces

capOpenStorageOptions

PropTypeDescription
databasestringThe storage database name
tablestringThe storage table name
encryptedbooleanSet to true for database encryption
modestringSet the mode for database encryption on iOS and Android. - encryption — encrypt an existing plaintext database with the configured passphrase - secret — open or create an encrypted database with the configured passphrase - newsecret — rekey an encrypted database from encryptionSecret to encryptionNewSecret Passphrases are set in capacitor.config under plugins.CapgoCapacitorDataStorageSqlite (see {@link CapgoCapacitorDataStorageSqliteConfig}). Defaults are defined in the plugin's Global sources if you do not configure them.
autoVacuumcapSQLiteAutoVacuumSet the SQLite auto_vacuum mode for the store. Use none/0, full/1, or incremental/2. iOS, Android, and Electron only. Web ignores this option.

capStorageOptions

PropTypeDescription
databasestringThe storage name

capDataStorageResult

PropTypeDescription
resultbooleanresult set to true when successful else false
messagestringa returned message

capTableStorageOptions

PropTypeDescription
tablestringThe storage table name

capDataStorageOptions

PropTypeDescription
keystringThe data name
valuestringThe data value when required

capValueResult

PropTypeDescription
valuestringthe data value for a given data key

capKeysResult

PropTypeDescription
keysstring[]the data key list as an Array

capValuesResult

PropTypeDescription
valuesstring[]the data values list as an Array

capFilterStorageOptions

PropTypeDescription
filterstringThe filter data for filtering keys ['%filter', 'filter', 'filter%'] for [starts with filter, contains filter, ends with filter]

capKeysValuesResult

PropTypeDescription
keysvaluesany[]the data keys/values list as an Array of {key:string,value:string}

capTablesResult

PropTypeDescription
tablesstring[]the tables list as an Array

capDataStorageChanges

PropTypeDescription
changesnumberthe number of changes from an importFromJson command

capStoreImportOptions

PropTypeDescription
jsonstringstringSet the JSON object to import

capStoreJson

PropTypeDescription
exportJsonStorean export JSON object

JsonStore

PropTypeDescription
databasestringThe database name
encryptedbooleanSet to true (database encryption) / false iOS & Android only
tablesJsonTable[]* Array of Table (JsonTable)

JsonTable

PropTypeDescription
namestringThe database name
valuescapDataStorageOptions[]* Array of Values (capDataStorageOptions)

Type Aliases

capSQLiteAutoVacuum

'none' | 'full' | 'incremental' | 0 | 1 | 2

This project follows the all-contributors specification. Contributions of any kind welcome!

Retirement message of @jepiqueau -->


I have been dedicated to developing and maintaining this plugin for many years since the inception of Ionic Capacitor. Now, at 73+ years old, and with my MacBook Pro becoming obsolete for running Capacitor 6 for iOS, I have made the decision to cease maintenance of the plugin. If anyone wishes to take ownership of this plugin, they are welcome to do so.


It has been a great honor to be part of this development journey alongside the developer community. I am grateful to see many of you following me on this path and incorporating the plugin into your applications. Your comments and suggestions have motivated me to continuously improve it.


I have made this decision due to several family-related troubles that require my full attention and time. Therefore, I will not be stepping back. Thank you to all of you for your support.


End <--


版本与发布记录

@capgo/capacitor-data-storage-sqlite 共发布 138 个版本,首次发布于 2024/08/15;过去 12 个月发布了 65 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.0.60latest2026/11/09今天
8.0.592026/11/027 天前
8.0.582026/10/2613 天前
8.0.572026/10/1920 天前
8.0.562026/10/1525 天前
8.0.552026/10/1327 天前

关于 @capgo/capacitor-data-storage-sqlite 的常见问题

@capgo/capacitor-data-storage-sqlite 是什么?

SQLite Storage of key/value strings pair

如何安装 @capgo/capacitor-data-storage-sqlite?

在项目目录运行 npm install @capgo/capacitor-data-storage-sqlite,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:localforage(^1.10.0)、@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-data-storage-sqlite 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-data-storage-sqlite 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-data-storage-sqlite 可以商用吗?

@capgo/capacitor-data-storage-sqlite 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-data-storage-sqlite 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-data-storage-sqlite 在 2026/10/09 – 2026/11/07 这 30 天内被下载 43,798 次,日均约 1,460 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-data-storage-sqlite 还在维护吗?

最新版本 8.0.60 发布于 2026/11/09(今天);至今共发布 138 个版本,其中过去 12 个月发布了 65 个;首次发布于 2024/08/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。