跳到主要内容

VersionedDomainEntityInput

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/versioned-domain.ts:64

构造版本化域所需的单个实体登记

Remarks​

四个必填项分别对应判定的三个平面:entityName 与 namespace 合起来是调用方在实体层问的 身份,physicalTableNames 是 raw 判定在 SQL 里看到的名字,syncType 决定第一类 untracked。 少任何一个都会逼下游自己去元数据里再查一次,而那正是「第二份清单」的开始。

Properties​

derivedIndexColumns?​

readonly optional derivedIndexColumns?: readonly string[];

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/versioned-domain.ts:101

插件在这张业务表上静态声明的派生索引列(第三类 untracked)

Remarks​

按表登记而不是并进全域集合:压成一个集合会让登记在 A 表上的列名在 B 表上一并豁免, 而这个集合是插件可以往里写东西的。


entityName​

readonly entityName: string;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/versioned-domain.ts:66

实体名(@Entity({ name })),大小写敏感


namespace​

readonly namespace: string;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/versioned-domain.ts:75

该实体的命名空间(@Entity({ namespace }))

Remarks​

必填而不是省略时当 'public':它是登记的身份键的一半(public:Post),与核心 isSystemEntity() 用的那把键同形。留个默认值的话,两个命名空间下的同名实体会撞成一条登记。


physicalTableNames​

readonly physicalTableNames: readonly string[];

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/versioned-domain.ts:89

这张表在本后端发出的 SQL 里可能被写成的全部名字

Remarks​

由 RxDBAdapterLocalBase.physicalTableNames 给出,域一个字都不猜。SQLite 家族没有 schema,命名空间被折进名字本身(public$post),而那是它们唯一能用的表名;PGlite 有真 schema,"public"."post" 在 raw 判定的限定剥离一步里已经回到逻辑名。让域按 '$' 自己拼一份 的话,规则就有了第二份——第二份不会因为原件改了而报错,只会开始认不出某张受版本控制的表, 于是 raw 门禁对它静默放行。

构造时归一化成小写并去重;空清单(或只有空白名)直接抛,见 buildVersionedDomain。


syncType​

readonly syncType: SyncType;

Defined in: packages/rxdb-plugin-working-tree/src/working-tree/versioned-domain.ts:92

该实体的同步策略;SyncType.QueryCache 即第一类 untracked