跳到主要内容

RxDBAdapterLocalBase

Defined in: packages/rxdb/src/rxdb-adapter.ts:120

数据库适配器基类(本地)

Extends

Extended by

Constructors

Constructor

new RxDBAdapterLocalBase(rxdb): RxDBAdapterLocalBase;

Defined in: packages/rxdb/src/rxdb-adapter.ts:96

Parameters

ParameterType
rxdbRxDB

Returns

RxDBAdapterLocalBase

Inherited from

RxDBAdapterBase.constructor

Properties

repository_cache

protected readonly repository_cache: Map<EntityType, IRepository<any>>;

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

Inherited from

RxDBAdapterBase.repository_cache


repository_map

protected readonly repository_map: Map<string, RepositoryConstructor<any>>;

Defined in: packages/rxdb/src/rxdb-adapter.ts:93

Inherited from

RxDBAdapterBase.repository_map


rxdb

readonly rxdb: RxDB;

Defined in: packages/rxdb/src/rxdb-adapter.ts:96

Inherited from

RxDBAdapterBase.rxdb

Methods

createTables()

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

Defined in: packages/rxdb/src/rxdb-adapter.ts:132

创建 tables

Parameters

ParameterTypeDescription
EntityTypesEntityType[]的类型数组
entities?any[]可选的实体实例数组,用于初始化数据

Returns

Promise<boolean>


deleteByIds()

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

Defined in: packages/rxdb/src/rxdb-adapter.ts:220

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

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

Parameters

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

Returns

Observable<void>

Observable<void>

Example

adapter.deleteByIds('Product', ['p1', 'p2'])
.subscribe(() => console.log('Deleted successfully'));

getMetadataByIds()

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

Defined in: packages/rxdb/src/rxdb-adapter.ts:186

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

getRepository()

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

Defined in: packages/rxdb/src/rxdb-adapter.ts:98

Type Parameters

Type ParameterDefault type
T extends EntityType-
RT extends IRepository<T>IRepository<T>

Parameters

ParameterType
EntityTypeT

Returns

RT

Inherited from

RxDBAdapterBase.getRepository


getRxDBChangeSequence()

abstract getRxDBChangeSequence(): Promise<number>;

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

获取当前 RxDBChange 序列号

Returns

Promise<number>


mergeChanges()

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

Defined in: packages/rxdb/src/rxdb-adapter.ts:159

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

实现策略(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<number | void>


repository()

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

Defined in: packages/rxdb/src/rxdb-adapter.ts:105

注册适配器的仓库

Type Parameters

Type Parameter
RT extends RepositoryBase<any>

Parameters

ParameterType
repositoryNamestring
RepositoryClassRepositoryConstructor<RT>

Returns

void

Inherited from

RxDBAdapterBase.repository


switchBranch()

abstract switchBranch(options): Promise<void>;

Defined in: packages/rxdb/src/rxdb-adapter.ts:138

切换分支

Parameters

ParameterTypeDescription
optionsSwitchBranchOptions切换分支选项

Returns

Promise<void>


transaction()

abstract transaction(fun): Promise<any>;

Defined in: packages/rxdb/src/rxdb-adapter.ts:125

执行事务

Parameters

ParameterTypeDescription
funTransactionFun事务回调函数

Returns

Promise<any>


upsertMany()

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

Defined in: packages/rxdb/src/rxdb-adapter.ts:203

批量 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(() => console.log('Cached successfully'));