自托管升级到3.1.0.beta2,典型的多容器安装需要额外的停机时间

我想重申一下,我没有使用GUI更新器。我有一个多容器安装。我执行了:

git pull
./launcher bootstrap app
./launcher destroy app && ./launcher start app
./launcher cleanup

(即使是多容器安装,我也使用app作为Web应用程序。我知道这不是常规做法。我讨厌输入web_only

bootstrap启动后,以及在destroy应用程序之前的一段时间,运行在新数据库上的旧版本只显示了一个错误屏幕。我不记得具体内容了,而且我没有通过停止截图来延长停机时间,但它只是白屏上的文字,而不是系统维护页面。我以前只见过几次这种情况,当bootstrap在异步“零停机”重建过程中运行db:migrate时,正在运行的旧软件会因为模式不一致而失败。

我看到的是数据库不一致情况下的任何表现。这比盲目地继续操作、破坏数据库要好得多!当我发帖时,是为了警告这种情况,即在应用一次小版本更新(此处是从3.1.0.beta1到3.1.0.beta2)时,在运行3.1.0.beta2的db:migrate后,3.1.0.beta1代码与数据库之间出现了模式不兼容,这种情况在多容器部署的正常低停机时间更新中很少发生,但偶尔会发生。

我的经历与GUI更新器中报告的Ruby错误不同。这是一个完全不相关的问题。我认识到我的帖子已从公告中移至通用的“问题”主题,但我想明确一点,我将其发布在公告中是为了警告像我一样的其他自托管用户,当他们看到公告时,此特定更新可能会产生这种影响。

我的帖子不是抱怨bug,甚至不是抱怨问题。它只是为了通知大家,这是与此特定版本相关的一个正常但罕见的案例,并且在发行说明中没有特别指出。

关于docker管理器未能识别其无法在镜像内部进行更新的抱怨,与我试图为其他自托管管理员提供有用的通知完全无关。

将这些不相关的问题分离到独立的线程中会更有意义。 EDIT by @supermathie: 已完成

1 个赞