我们说我有一个现有的聚合CustomAggregate
和一个由聚合处理的事件CustomEvent
。
在事件存储已包含此聚合的某些事件一段时间后,我需要将聚合和事件重命名为NewCustomAggregate
和NewCustomEvent
。我更新了重命名事件的修订版,并创建了一个处理事件重命名的相应升级程序。
但表中用作事件存储的type
仍然引用CustomAggregate
。因此,当我试图获取新聚合类型的所有事件时,如此
eventStore.readEvents("NewCustomAggregate", id);
我(显然)得到一个例外,说明此聚合类型没有事件。
是否有办法不仅考虑升级者中重命名/更改的事件,还要考虑到对于某些事件修订,事件存储应该将NewCustomAggregate
类型视为CustomAggregate
?< / p>
我使用的Axon版本是2.4.6。
答案 0 :(得分:2)
在Axon 2中,您无法转发任何不在事件本身的有效负载中的信息。相反,您必须直接在数据库中更改聚合类型。
一点背景:Axon 2使用此列来检索特定聚合的事件(以及聚合标识符)。如果使用升级程序更新了此数据库,则数据库无法将该类型与任何事件进行匹配。所以基本上,改变表中的值是你最好的选择。