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
| Parameter | Type |
|---|---|
rxdb | RxDB |
Returns
RxDBAdapterLocalBase
Inherited from
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
Methods
createTables()
abstract createTables(EntityTypes, entities?): Promise<boolean>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:132
创建 tables
Parameters
| Parameter | Type | Description |
|---|---|---|
EntityTypes | EntityType[] | 的类型数组 |
entities? | any[] | 可选的实体实例数组,用于初始化数据 |
Returns
Promise<boolean>
deleteByIds()
abstract deleteByIds(entityName, ids): Observable<void>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:220
按 ID 列表批量删除(QueryCache 专用)
用于清理本地缓存中已被远程删除的数据。
Parameters
| Parameter | Type | Description |
|---|---|---|
entityName | string | 实体名称 |
ids | string[] | 要删除的 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
| Parameter | Type | Description |
|---|---|---|
entityName | string | 实体名称 |
ids | string[] | 实体 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 Parameter | Default type |
|---|---|
T extends EntityType | - |
RT extends IRepository<T> | IRepository<T> |
Parameters
| Parameter | Type |
|---|---|
EntityType | T |
Returns
RT
Inherited from
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):
- 将 actions 转换为 SQL 操作
- 在事务中: a) 执行 SQL 操作实体表(INSERT/UPDATE/DELETE) b) 批量插入 localChanges 到 RxDBChange 表(用于历史追踪)
- 发送本地事件通知 UI 更新
Parameters
| Parameter | Type | Description |
|---|---|---|
actions | SwitchVersionActions | 压缩后的变更操作集合(从远程 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
| Parameter | Type |
|---|---|
repositoryName | string |
RepositoryClass | RepositoryConstructor<RT> |
Returns
void
Inherited from
switchBranch()
abstract switchBranch(options): Promise<void>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:138
切换分支
Parameters
| Parameter | Type | Description |
|---|---|---|
options | SwitchBranchOptions | 切换分支选项 |
Returns
Promise<void>
transaction()
abstract transaction(fun): Promise<any>;
Defined in: packages/rxdb/src/rxdb-adapter.ts:125
执行事务
Parameters
| Parameter | Type | Description |
|---|---|---|
fun | TransactionFun | 事务回调函数 |
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
| Parameter | Type | Description |
|---|---|---|
entityName | string | 实体名称 |
data | T[] | 要写入的数据列表 |
Returns
Observable<void>
Observable<void>
Example
adapter.upsertMany('Product', [product1, product2])
.subscribe(() => console.log('Cached successfully'));