基于 Smalltalk / Pharo 图像的持久性 - 如何部署?

Smalltalk / Pharo image based persistence - How to deploy?

我实际上应该如何部署使用基于图像的持久性的应用程序?这是我的场景:我在 Smalltalk.In 中编写了一个 CMS,这种情况下数据主要是读取,很少写入。现在,每当有人写入数据时,我都可以对图像进行快照。但是我如何引入我的应用程序的新版本并继承 运行 应用程序的状态?除了图像之外,我不需要某种形式的 serialization/data 持久性吗? 谢谢

在 Pier3,我们只需将 CMS 数据转换为代码,然后将其作为 Monticello 包写入。我们可以在本地 Pier 镜像中写入内容,提交并 git 将新版本推送到云端服务器。在那里我们 运行 一个简单的循环轮询 git 目录以找到新版本并加载它。

最简单的方法是使用 Monticello 引入新版本。

除非您更改了 类 的形状(例如,删除或重命名 instvars),否则这不会影响您的现有数据 - 在这些情况下,您需要适当的迁移策略不管你的持久化机制如何。

当然,如果您在更新之前对映像进行快照,则回滚很简单。