Silverstripe 在构建时创建过时的表

Silverstripe is creating obsolete tables on build

我有一个非常可怕的问题。最近几次我将代码推送到生产环境时,silverstripe 会将 table 或两个设置为过时,即使所做的更改与 class 无关。当我 运行 第二次构建时, table 返回但没有行。

真正奇怪的是,这似乎只发生在我们的生产环境中(当然)。

在暂存和生产中,我们通过 beantalk 运行ning sake dev/build 在 post 部署挂钩中,这是在创建过时的 table 时。

我在 another question 中读到这可能是因为 table 没有定义 $db 或者它没有 $has_one 关系。但我们不是这样的,页面既有设置也有更多。

服务器配置:

SilverStripe 版本 3.1(最新)

PHP

开发 5.6.16

暂存 5.5.14

生产 5.5.28

Mysql

开发 5.6.27

暂存 5.1.73

生产 5.1.73

在我看来它可能是某种配置缓存。

我不确定诊断还需要哪些其他信息,请告诉我,我会获得更多信息。

我不确定到底是什么原因造成的,但看起来我们的自动部署过程留下了几个目录和文件。我们已经转移到 composer,在受影响的项目上从头开始部署,现在一切正常。