跳到主要内容

RxDBAdapterSqliteai

Defined in: packages/rxdb-adapter-sqliteai/src/RxDBAdapterSqliteai.ts:13

基于 @sqliteai/sqlite-wasm 的 RxDB 本地存储适配器。

rxdb-adapter-sqlite(官方 sqlite-wasm 绑定)API 对齐,差异:

  • WASM 二进制来自 SqliteAI 的发行版(OPFS / Worker 配置一致)
  • 客户端实现继承 Oo1ClientBase,复用 sqlite-core 的队列与事件批处理

Extends

Constructors

Constructor

new RxDBAdapterSqliteai(rxdb, options): RxDBAdapterSqliteai;

Defined in: packages/rxdb-adapter-sqliteai/src/RxDBAdapterSqliteai.ts:17

Parameters

ParameterType
rxdbRxDB
optionsSqliteaiOptions

Returns

RxDBAdapterSqliteai

Overrides

RxDBAdapterSqliteBase.constructor

Properties

name

readonly name: string = ADAPTER_NAME;

Defined in: packages/rxdb-adapter-sqliteai/src/RxDBAdapterSqliteai.ts:15

适配器名称

Overrides

RxDBAdapterSqliteBase.name


options

readonly options: SqliteaiOptions;

Defined in: packages/rxdb-adapter-sqliteai/src/RxDBAdapterSqliteai.ts:19


repository_cache

protected readonly repository_cache: Map<EntityType, RepositoryInstance<EntityType>>;

Defined in: packages/rxdb/dist/rxdb-adapter.d.ts:121

Inherited from

RxDBAdapterSqliteBase.repository_cache


repository_map

protected readonly repository_map: Map<string, AdapterRepositoryConstructor<RxDBAdapterSqliteai, RepositoryInstance<EntityType>>>;

Defined in: packages/rxdb/dist/rxdb-adapter.d.ts:120

Inherited from

RxDBAdapterSqliteBase.repository_map


rxdb

readonly rxdb: RxDB;

Defined in: packages/rxdb/dist/rxdb-adapter.d.ts:119

Inherited from

RxDBAdapterSqliteBase.rxdb

Accessors

encryption

Get Signature

get encryption(): AdapterEncryptionFacade;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:53

Returns

AdapterEncryptionFacade

Inherited from

RxDBAdapterSqliteBase.encryption


encryptionContext

Get Signature

get encryptionContext(): EncryptionContext;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:52

Returns

EncryptionContext

Inherited from

RxDBAdapterSqliteBase.encryptionContext

Methods

cacheRowIdEntity()

cacheRowIdEntity(rowId, entity): void;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:66

Parameters

ParameterType
rowIdbigint
entityany

Returns

void

Inherited from

RxDBAdapterSqliteBase.cacheRowIdEntity


cleanAllCache()

cleanAllCache(): void;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:70

Returns

void

Inherited from

RxDBAdapterSqliteBase.cleanAllCache


connect()

connect(): Promise<IRxDBAdapter>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:56

连接数据库

Returns

Promise<IRxDBAdapter>

Inherited from

RxDBAdapterSqliteBase.connect


createClient()

protected createClient(): Promise<SqliteClientLike>;

Defined in: packages/rxdb-adapter-sqliteai/src/RxDBAdapterSqliteai.ts:25

Create or obtain the SQLite client. Concrete adapters implement this with their backend-specific logic.

Returns

Promise<SqliteClientLike>

Overrides

RxDBAdapterSqliteBase.createClient


createTables()

createTables<T>(EntityTypes, entities?): Promise<boolean>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:63

创建 tables

Type Parameters

Type Parameter
T extends EntityType

Parameters

ParameterTypeDescription
EntityTypesT[]的类型数组
entities?InstanceType<T>[]可选的实体实例数组,用于初始化数据

Returns

Promise<boolean>

Inherited from

RxDBAdapterSqliteBase.createTables


deleteByIds()

deleteByIds(entityName, ids): Observable<void>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:85

按 ID 列表批量删除(QueryCache 专用)

用于清理本地缓存中已被远程删除的数据。

Parameters

ParameterTypeDescription
entityNamestring实体名称
idsstring[]要删除的 ID 列表

Returns

Observable<void>

Observable<void>

Example

adapter.deleteByIds('Product', ['p1', 'p2']).subscribe();

Inherited from

RxDBAdapterSqliteBase.deleteByIds


disconnect()

disconnect(): Promise<void>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:57

取消连接

Returns

Promise<void>

Inherited from

RxDBAdapterSqliteBase.disconnect


getEntityByRowId()

getEntityByRowId(rowId, EntityType): any;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:68

Parameters

ParameterType
rowIdbigint
EntityTypeEntityType

Returns

any

Inherited from

RxDBAdapterSqliteBase.getEntityByRowId


getMetadataByIds()

getMetadataByIds(entityName, ids): Observable<Map<string, string>>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:83

获取指定 ID 列表的元数据(QueryCache 专用)

用于本地缓存新鲜度检查,返回 ID → updatedAt 映射。

Parameters

ParameterTypeDescription
entityNamestring实体名称
idsstring[]实体 ID 列表

Returns

Observable<Map<string, string>>

Observable<Map<string, string>> - ID → updatedAt 映射

Example

adapter.getMetadataByIds('Product', ['p1', 'p2'])
.subscribe(map => {
// map: Map `{ 'p1' => '2026-01-12T10:00:00Z', 'p2' => '2026-01-12T09:30:00Z' }`
});

Inherited from

RxDBAdapterSqliteBase.getMetadataByIds


getRepository()

getRepository<T, RT>(EntityType): RT;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:55

Type Parameters

Type ParameterDefault type
T extends EntityType-
RTSqliteRepository<T>

Parameters

ParameterType
EntityTypeT

Returns

RT

Inherited from

RxDBAdapterSqliteBase.getRepository


getRowIdByEntity()

getRowIdByEntity(entity): bigint | undefined;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:69

Parameters

ParameterType
entityany

Returns

bigint | undefined

Inherited from

RxDBAdapterSqliteBase.getRowIdByEntity


getRxDBChangeSequence()

getRxDBChangeSequence(): Promise<number>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:81

获取当前 RxDBChange 序列号

Returns

Promise<number>

Inherited from

RxDBAdapterSqliteBase.getRxDBChangeSequence


internalQuery()

internalQuery(sql, bindings?): Promise<SqliteSuccessResult>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:79

Parameters

ParameterType
sqlstring
bindings?SQLiteCompatibleType[]

Returns

Promise<SqliteSuccessResult>

Inherited from

RxDBAdapterSqliteBase.internalQuery


isTableExisted()

isTableExisted<T>(EntityType): Promise<boolean>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:62

判断 table 是否存在

Type Parameters

Type Parameter
T extends EntityType

Parameters

ParameterType
EntityTypeT

Returns

Promise<boolean>

Inherited from

RxDBAdapterSqliteBase.isTableExisted


localRxDBBranch()

localRxDBBranch(): SqliteRepository<typeof RxDBBranch>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:78

Returns

SqliteRepository<typeof RxDBBranch>

Inherited from

RxDBAdapterSqliteBase.localRxDBBranch


localRxDBChange()

localRxDBChange(): SqliteTreeRepository<typeof RxDBChange>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:80

Returns

SqliteTreeRepository<typeof RxDBChange>

Inherited from

RxDBAdapterSqliteBase.localRxDBChange


mergeChanges()

mergeChanges(
actions,
localChanges?,
disableTriggers?): Promise<void>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:65

应用压缩后的变更到本地实体表

实现策略(SQLite):

  1. 将 actions 转换为 SQL 操作
  2. 在事务中: a) 执行 SQL 操作实体表(INSERT/UPDATE/DELETE) b) 批量插入 localChanges 到 RxDBChange 表(用于历史追踪)
  3. 发送本地事件通知 UI 更新

Parameters

ParameterTypeDescription
actionsSwitchVersionActions压缩后的变更操作集合(从远程 pull 来的)
localChanges?Omit<RxDBChange, "id">[]需要保存到本地 RxDBChange 表的记录(可选)
disableTriggers?boolean是否禁用触发器(用于 pull 等操作,避免创建 RxDBChange)

Returns

Promise<void>

Inherited from

RxDBAdapterSqliteBase.mergeChanges


mutations()

mutations<T>(options): Promise<InstanceType<T>[]>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:61

批量修改实体(创建/更新/删除)

Type Parameters

Type Parameter
T extends EntityType

Parameters

ParameterTypeDescription
optionsRxDBMutationsMap<T>批量修改选项

Returns

Promise<InstanceType<T>[]>

Inherited from

RxDBAdapterSqliteBase.mutations


query()

query(sql, bindings?): Promise<SqliteSuccessResult>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:71

Parameters

ParameterType
sqlstring
bindings?SQLiteCompatibleType[]

Returns

Promise<SqliteSuccessResult>

Inherited from

RxDBAdapterSqliteBase.query


rawQuery()

rawQuery(sql, params?): Promise<{
columns: string[];
rows: SQLiteCompatibleType[][];
rowsAffected: number;
}>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:72

执行原始 SQL 查询(可选) 用于条件 UPDATE 等需要绕过 ORM 的场景

Parameters

ParameterTypeDescription
sqlstringSQL 语句
params?unknown[]绑定参数

Returns

Promise<{ columns: string[]; rows: SQLiteCompatibleType[][]; rowsAffected: number; }>

Inherited from

RxDBAdapterSqliteBase.rawQuery


removeCacheEntity()

removeCacheEntity(entity): void;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:67

Parameters

ParameterType
entityany

Returns

void

Inherited from

RxDBAdapterSqliteBase.removeCacheEntity


removeMany()

removeMany<T>(entities): Promise<InstanceType<T>[]>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:60

删除多个实体

Type Parameters

Type Parameter
T extends EntityType

Parameters

ParameterType
entitiesInstanceType<T>[]

Returns

Promise<InstanceType<T>[]>

Inherited from

RxDBAdapterSqliteBase.removeMany


repository()

protected repository<RT>(repositoryName, RepositoryClass): void;

Defined in: packages/rxdb/dist/rxdb-adapter.d.ts:129

注册适配器的仓库

Type Parameters

Type Parameter
RT extends RepositoryInstance<EntityType>

Parameters

ParameterType
repositoryNamestring
RepositoryClassAdapterRepositoryConstructor<RxDBAdapterSqliteai, RT>

Returns

void

Inherited from

RxDBAdapterSqliteBase.repository


saveMany()

saveMany<T>(entities): Promise<InstanceType<T>[]>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:59

保存多个实体

Type Parameters

Type Parameter
T extends EntityType

Parameters

ParameterType
entitiesInstanceType<T>[]

Returns

Promise<InstanceType<T>[]>

Inherited from

RxDBAdapterSqliteBase.saveMany


setRxDBChangeSequence()

setRxDBChangeSequence(sequence): Promise<void>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:82

Parameters

ParameterType
sequencenumber

Returns

Promise<void>

Inherited from

RxDBAdapterSqliteBase.setRxDBChangeSequence


switchBranch()

switchBranch(options): Promise<void>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:64

切换分支

Parameters

ParameterTypeDescription
optionsSwitchBranchOptions切换分支选项

Returns

Promise<void>

Inherited from

RxDBAdapterSqliteBase.switchBranch


transaction()

transaction<T>(transactionFun, transactionLog?): Promise<Awaited<ReturnType<T>>>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:77

执行事务

Type Parameters

Type Parameter
T extends TransactionFun

Parameters

ParameterTypeDescription
transactionFunT事务回调函数
transactionLog?boolean-

Returns

Promise<Awaited<ReturnType<T>>>

Inherited from

RxDBAdapterSqliteBase.transaction


upsertMany()

upsertMany<T>(entityName, data): Observable<void>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:84

批量 upsert 数据(QueryCache 专用)

执行 INSERT OR REPLACE 语义,用于缓存远程拉取的数据。

Type Parameters

Type Parameter
T

Parameters

ParameterTypeDescription
entityNamestring实体名称
dataT[]要写入的数据列表

Returns

Observable<void>

Observable<void>

Example

adapter.upsertMany('Product', [product1, product2]).subscribe();

Inherited from

RxDBAdapterSqliteBase.upsertMany


version()

version(): Promise<string>;

Defined in: packages/rxdb-adapter-sqlite-core/dist/RxDBAdapterSqliteBase.d.ts:58

获取数据库版本

Returns

Promise<string>

Inherited from

RxDBAdapterSqliteBase.version