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