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
| Parameter | Type |
|---|---|
rxdb | RxDB |
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
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
Accessors
encryption
Get Signature
get encryption(): AdapterEncryptionFacade;
Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:122
Returns
encryptionContext
Get Signature
get encryptionContext(): EncryptionContext;
Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:118
Returns
Methods
cacheRowIdEntity()
cacheRowIdEntity(rowId, entity): void;
Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:248
Parameters
| Parameter | Type |
|---|---|
rowId | bigint |
entity | any |
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
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
| Parameter | Type | Description |
|---|---|---|
EntityTypes | T[] | 的类型数组 |
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
| Parameter | Type | Description |
|---|---|---|
entityName | string | 实体名称 |
ids | string[] | 要删除的 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
getEntityByRowId()
getEntityByRowId(rowId, EntityType): any;
Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:262
Parameters
| Parameter | Type |
|---|---|
rowId | bigint |
EntityType | EntityType |
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
| 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' }`
});
Overrides
RxDBAdapterLocalBase.getMetadataByIds
getRepository()
getRepository<T, RT>(EntityType): RT;
Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:154
获取仓库
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends EntityType | - |
RT | SqliteRepository<T> |
Parameters
| Parameter | Type |
|---|---|
EntityType | T |
Returns
RT
Implementation of
Overrides
RxDBAdapterLocalBase.getRepository
getRowIdByEntity()
getRowIdByEntity(entity): bigint | undefined;
Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:266
Parameters
| Parameter | Type |
|---|---|
entity | any |
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
| Parameter | Type |
|---|---|
sql | string |
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
| Parameter | Type |
|---|---|
EntityType | T |
Returns
Promise<boolean>
Implementation of
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):
- 将 actions 转换为 SQL 操作
- 在事务中: a) 执行 SQL 操作实体表(INSERT/UPDATE/DELETE) b) 批量插入 localChanges 到 RxDBChange 表(用于历史追踪)
- 发送本地事件通知 UI 更新
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
actions | SwitchVersionActions | undefined | 压缩后的变更操作集合(从远程 pull 来的) |
localChanges? | Omit<RxDBChange, "id">[] | undefined | 需要保存到本地 RxDBChange 表的记录(可选) |
disableTriggers? | boolean | false | 是否禁用触发器(用于 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
| Parameter | Type | Description |
|---|---|---|
options | RxDBMutationsMap<T> | 批量修改选项 |
Returns
Promise<InstanceType<T>[]>
Implementation of
query()
query(sql, bindings?): Promise<SqliteSuccessResult>;
Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:275
Parameters
| Parameter | Type |
|---|---|
sql | string |
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
| Parameter | Type | Description |
|---|---|---|
sql | string | SQL 语句 |
params? | unknown[] | 绑定参数 |
Returns
Promise<{
columns: string[];
rows: SQLiteCompatibleType[][];
rowsAffected: number;
}>
Implementation of
removeCacheEntity()
removeCacheEntity(entity): void;
Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:253
Parameters
| Parameter | Type |
|---|---|
entity | any |
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
| Parameter | Type |
|---|---|
entities | InstanceType<T>[] |
Returns
Promise<InstanceType<T>[]>
Implementation of
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
| Parameter | Type |
|---|---|
repositoryName | string |
RepositoryClass | AdapterRepositoryConstructor<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
| Parameter | Type |
|---|---|
entities | InstanceType<T>[] |
Returns
Promise<InstanceType<T>[]>
Implementation of
setRxDBChangeSequence()
setRxDBChangeSequence(sequence): Promise<void>;
Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:334
Parameters
| Parameter | Type |
|---|---|
sequence | number |
Returns
Promise<void>
switchBranch()
switchBranch(options): Promise<void>;
Defined in: packages/rxdb-adapter-sqlite-core/src/RxDBAdapterSqliteBase.ts:235
切换分支
Parameters
| Parameter | Type | Description |
|---|---|---|
options | SwitchBranchOptions | 切换分支选项 |
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
| Parameter | Type | Default value | Description |
|---|---|---|---|
transactionFun | T | undefined | 事务回调函数 |
transactionLog | boolean | true | - |
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
| Parameter | Type | Description |
|---|---|---|
entityName | string | 实体名称 |
data | T[] | 要写入的数据列表 |
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>