nservicebus - NserviceBus - 从 SagaData 实体中删除属性
问题描述
我有一个 SagaData 类,它有很多冗余属性,我想在我们的下一个版本中删除它们。但是,现在生产中正在进行的 Sagas 活动,我不确定删除 SagaData 类上的这些属性会对已经存在的 Sagas 产生什么影响。
Afaik NServiceBus 为我们处理创建数据库表,其中一个具有所有这些冗余属性作为列。谁能指出我学习如果从 SagaData 类中删除这些属性会发生什么的方向。假设没有使用属性,只填充和代码将被相应地重构。- 我想知道我们的数据库会发生什么,现有的 Sagas 会发生什么
谢谢
解决方案
NHibernate 架构更新
NHibernate 仅在通过 NServiceBus NHibernate 安装程序 ( ) 运行 NH 模式生成器时才添加模式.EnableInstallers()
。NHibernate 不进行模式迁移,如列类型更改、列重命名和列删除。这是 NHibernate 的限制,而不是 NServiceBus 的限制。
脚本 SQL
破坏性架构更改都需要手动编写脚本。您可以使用一个工具来运行您手动创建的脚本RoundhouseE或许多其他类似的工具。您还可以使用 Microsoft 数据库部署项目 (SSDT) 等工具来区分数据库,该工具可以为您创建这些脚本。
删除列
如果你有一个新的 saga,你可以等到所有旧的 sagas 完成,正如@hadi 提到的那样,你甚至可以在未使用时删除那个旧表。
修改现有的 saga
如果您修改现有的 saga,这意味着您的实现将不再使用这些列,对于现有的 saga 实例也是如此。部署新版本后,您可以安全地从表中删除这些列。
推荐阅读
- android - Appium发送指令无反馈,手动滑动屏幕做出反应
- actionscript-3 - 防止随机帧标签被多次选择 as3
- typescript - 将 ts 文件完全包含到另一个 ts 文件中,(结果文件中不需要)
- python - 如何使用 set_xlabel 标记正负 x 轴?
- f# - 如何像在 C# 中一样在 F# 中进行显式重载转换?
- python - 操作 Pandas 数据框
- elasticsearch - Logstash 是否支持 Elasticsearch 的 _update_by_query?
- awk - 计算一个字符的实例数并在条件中使用它
- html - Bootstrap 4垂直对齐对我来说根本不起作用
- python - Selenium 在谷歌日历(Python)中找不到表单元素