跳到主要内容

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​

ParameterType
pglitePGlite
rxdbRxDB
extensionsreadonly 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​

ParameterTypeDescription
rxdbRxDB领取方
extensionsreadonly 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​

ParameterTypeDescription
dbNamestring领取方的库名(rxdb.config.dbName)
extensionsreadonly string[]领取方加载的扩展(pgliteBackupExtensions 的结果)

Returns​

PGlite

PGlite 实例,所有权随之转移

Throws​

RxDBBackupError invalid_state 已领取 / 已关闭,或库名、扩展与恢复目标不一致