registerSystemEntities()
function registerSystemEntities(entities): void;
Defined in: packages/rxdb/src/system/system-entities.ts:85
登记插件贡献的系统表
Parameters
| Parameter | Type | Description |
|---|---|---|
entities | readonly EntityType[] | 插件的系统实体类,顺序即建表顺序 |
Returns
void
Remarks
系统表身份是「实体类」的属性,不是「某个数据库」的属性,所以登记簿是模块级、只增不减的。
这正是 isSystemEntity 得以保持纯函数签名的原因——它有跨包消费者
(RxDBAdapterHttp 拿它决定同步行为),改成按实例取会波及包外调用点。
多实例不会互相污染,但那不是这个函数保证的:保证来自建表那一侧按实例算
(RxDB.systemEntities = CORE_SYSTEM_ENTITIES + 本实例 use() 过的贡献)。
登记簿只被「这个类是不是系统表」这类判定读,多认几个身份对没装该插件的库没有行为差异——
那些类根本进不了它的 config.entities。
按身份幂等:同一张表重复登记是空操作,因此 disconnect() → connect() 重装插件不会让
登记簿无限增长(与 SchemaManager.init 逐张判定同一个理由)。
必须在 connect() 之前调用。建表引导只读一次登记簿,之后再登记的表不会被建出来。