PGliteRestoredDatabase
Defined in: packages/rxdb-adapter-pglite/src/backup/pglite-restored-database.ts:21
恢复到内存目标后得到的一次性数据库句柄。
Remarks
内存库只活在创建它的 PGlite 实例里,没有「重新打开同一个位置」这回事,所以恢复结果不能像 IndexedDB 目标那样留在存储里等下一次连接——只能把实例本身交给 adapter。句柄只能被领取一次, 且只能被恢复时校验过的那个 RxDB 实例、以同一组扩展领取:兼容性(schema 指纹、认证域、扩展) 是对那个实例判定的,同名但 schema 不同的另一个实例领走它就等于绕过了校验。 不用时调用方负责 PGliteRestoredDatabase.close。
Example
const { database } = await restorePGliteDatabase(source, { rxdb, options: { store: 'memory' } });
rxdb.adapter('pglite', db => new RxDBAdapterPGlite(db, { store: 'memory', restoredDatabase: database }));
await rxdb.connect('pglite');
Constructors
Constructor
new PGliteRestoredDatabase(
pglite,
rxdb,
extensions
): PGliteRestoredDatabase;
Defined in: packages/rxdb-adapter-pglite/src/backup/pglite-restored-database.ts:32
Internal
Parameters
| Parameter | Type |
|---|---|
pglite | PGlite |
rxdb | RxDB |
extensions | readonly string[] |
Returns
PGliteRestoredDatabase
Accessors
consumed
Get Signature
get consumed(): boolean;
Defined in: packages/rxdb-adapter-pglite/src/backup/pglite-restored-database.ts:27
句柄是否已被领取或关闭。
Returns
boolean
Methods
assertAdoptableBy()
assertAdoptableBy(rxdb, extensions): void;
Defined in: packages/rxdb-adapter-pglite/src/backup/pglite-restored-database.ts:50
Internal
adapter 连接前的准入检查:领取方必须是恢复时校验过的那个 RxDB 实例。
Parameters
| Parameter | Type | Description |
|---|---|---|
rxdb | RxDB | 领取方 |
extensions | readonly string[] | 领取方 adapter 的扩展(pgliteBackupExtensions 的结果) |
Returns
void
Remarks
客户端只知道库名,实例身份只有 adapter 能判断,所以这一步放在 adapter 里、先于 PGliteRestoredDatabase.take。检查失败不消费句柄,正确的实例仍可领取。
Throws
RxDBBackupError invalid_state 不是校验过的实例、扩展不一致或已领取
close()
close(): Promise<void>;
Defined in: packages/rxdb-adapter-pglite/src/backup/pglite-restored-database.ts:75
丢弃未被领取的实例;已领取时什么都不做(实例归 adapter 管)。
Returns
Promise<void>
take()
take(dbName, extensions): PGlite;
Defined in: packages/rxdb-adapter-pglite/src/backup/pglite-restored-database.ts:68
Internal
领取恢复好的实例。
Parameters
| Parameter | Type | Description |
|---|---|---|
dbName | string | 领取方的库名(rxdb.config.dbName) |
extensions | readonly string[] | 领取方加载的扩展(pgliteBackupExtensions 的结果) |
Returns
PGlite
PGlite 实例,所有权随之转移
Throws
RxDBBackupError invalid_state 已领取 / 已关闭,或库名、扩展与恢复目标不一致