跳到主要内容

RxDBAdapterSqliteBase

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:94

Backend-agnostic base class for SQLite adapters.

Subclasses provide createClient() and adapterName.

Extends

Implements

Constructors

Constructor

new RxDBAdapterSqliteBase(rxdb, options?): RxDBAdapterSqliteBase;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:143

Parameters

ParameterType
rxdbRxDB
options?SqliteBaseOptions

Returns

RxDBAdapterSqliteBase

Overrides

RxDBAdapterLocalBase.constructor

Properties

name

abstract readonly name: string;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:110

适配器名称

Implementation of

IRxDBAdapter.name


repository_cache

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

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

Inherited from

RxDBAdapterLocalBase.repository_cache


repository_map

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

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

Inherited from

RxDBAdapterLocalBase.repository_map


rxdb

readonly rxdb: RxDB;

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

Inherited from

RxDBAdapterLocalBase.rxdb

Accessors

encryption

Get Signature

get encryption(): AdapterEncryptionFacade;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:122

Returns

AdapterEncryptionFacade


encryptionContext

Get Signature

get encryptionContext(): EncryptionContext;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:118

Returns

EncryptionContext

Methods

cacheRowIdEntity()

cacheRowIdEntity(rowId, entity): void;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:248

Parameters

ParameterType
rowIdbigint
entityany

Returns

void


cleanAllCache()

cleanAllCache(): void;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:270

Returns

void


connect()

connect(): Promise<IRxDBAdapter>;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:168

连接数据库

Returns

Promise<IRxDBAdapter>

Implementation of

IRxDBAdapter.connect


createClient()

abstract protected createClient(): Promise<SqliteClientLike>;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:116

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

Returns

Promise<SqliteClientLike>


createTables()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:229

创建 tables

Type Parameters

Type Parameter
T extends EntityType

Parameters

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

Returns

Promise<boolean>

Overrides

RxDBAdapterLocalBase.createTables


deleteByIds()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:390

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

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

Parameters

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

Returns

Observable<void>

Observable<void>

Example

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

Overrides

RxDBAdapterLocalBase.deleteByIds


disconnect()

disconnect(): Promise<void>;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:181

取消连接

Returns

Promise<void>

Implementation of

IRxDBAdapter.disconnect


getEntityByRowId()

getEntityByRowId(rowId, EntityType): any;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:262

Parameters

ParameterType
rowIdbigint
EntityTypeEntityType

Returns

any


getMetadataByIds()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:343

获取指定 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' }`
});

Overrides

RxDBAdapterLocalBase.getMetadataByIds


getRepository()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:154

获取仓库

Type Parameters

Type ParameterDefault type
T extends EntityType-
RTSqliteRepository<T>

Parameters

ParameterType
EntityTypeT

Returns

RT

Implementation of

IRxDBAdapter.getRepository

Overrides

RxDBAdapterLocalBase.getRepository


getRowIdByEntity()

getRowIdByEntity(entity): bigint | undefined;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:266

Parameters

ParameterType
entityany

Returns

bigint | undefined


getRxDBChangeSequence()

getRxDBChangeSequence(): Promise<number>;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:328

获取当前 RxDBChange 序列号

Returns

Promise<number>

Overrides

RxDBAdapterLocalBase.getRxDBChangeSequence


internalQuery()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:320

Parameters

ParameterType
sqlstring
bindings?SQLiteCompatibleType[]

Returns

Promise<SqliteSuccessResult>


isTableExisted()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:221

判断 table 是否存在

Type Parameters

Type Parameter
T extends EntityType

Parameters

ParameterType
EntityTypeT

Returns

Promise<boolean>

Implementation of

IRxDBAdapter.isTableExisted

Overrides

RxDBAdapterLocalBase.isTableExisted


localRxDBBranch()

localRxDBBranch(): SqliteRepository<typeof RxDBBranch>;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:316

Returns

SqliteRepository<typeof RxDBBranch>


localRxDBChange()

localRxDBChange(): SqliteTreeRepository<typeof RxDBChange>;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:324

Returns

SqliteTreeRepository<typeof RxDBChange>


mergeChanges()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:239

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

实现策略(SQLite):

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

Parameters

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

Returns

Promise<void>

Overrides

RxDBAdapterLocalBase.mergeChanges


mutations()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:213

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

Type Parameters

Type Parameter
T extends EntityType

Parameters

ParameterTypeDescription
optionsRxDBMutationsMap<T>批量修改选项

Returns

Promise<InstanceType<T>[]>

Implementation of

IRxDBAdapter.mutations


query()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:275

Parameters

ParameterType
sqlstring
bindings?SQLiteCompatibleType[]

Returns

Promise<SqliteSuccessResult>


rawQuery()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:287

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

Parameters

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

Returns

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

Implementation of

IRxDBAdapter.rawQuery


removeCacheEntity()

removeCacheEntity(entity): void;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:253

Parameters

ParameterType
entityany

Returns

void


removeMany()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:205

删除多个实体

Type Parameters

Type Parameter
T extends EntityType

Parameters

ParameterType
entitiesInstanceType<T>[]

Returns

Promise<InstanceType<T>[]>

Implementation of

IRxDBAdapter.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<RxDBAdapterSqliteBase, RT>

Returns

void

Inherited from

RxDBAdapterLocalBase.repository


saveMany()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:197

保存多个实体

Type Parameters

Type Parameter
T extends EntityType

Parameters

ParameterType
entitiesInstanceType<T>[]

Returns

Promise<InstanceType<T>[]>

Implementation of

IRxDBAdapter.saveMany


setRxDBChangeSequence()

setRxDBChangeSequence(sequence): Promise<void>;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:334

Parameters

ParameterType
sequencenumber

Returns

Promise<void>


switchBranch()

switchBranch(options): Promise<void>;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:235

切换分支

Parameters

ParameterTypeDescription
optionsSwitchBranchOptions切换分支选项

Returns

Promise<void>

Overrides

RxDBAdapterLocalBase.switchBranch


transaction()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:306

执行事务

Type Parameters

Type Parameter
T extends TransactionFun

Parameters

ParameterTypeDefault valueDescription
transactionFunTundefined事务回调函数
transactionLogbooleantrue-

Returns

Promise<Awaited<ReturnType<T>>>

Overrides

RxDBAdapterLocalBase.transaction


upsertMany()

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

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:369

批量 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();

Overrides

RxDBAdapterLocalBase.upsertMany


version()

version(): Promise<string>;

Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:192

获取数据库版本

Returns

Promise<string>

Implementation of

IRxDBAdapter.version