如何将更改部署到暂存数据库,同时仍保持其与生产主数据库同步?

如何将更改部署到暂存数据库,同时仍保持其与生产主数据库同步?

我想设置一个临时服务器来对我的网站进行最终测试。临时站点的数据库正在复制生产主 mysql db,以反映真实环境。

如果部署仅包含代码更改,则可以轻松地先将其部署到暂存区,然后在足够稳定的情况下将其部署到生产区。

但是如果部署包含数据库更改,我怎样才能将其部署到暂存区而不影响主数据库,但仍保持与主数据库的实时同步?


编辑:

如果做不到。我怎样才能让数据写入暂存服务器时“不丢失”?如果某些用户使用测试版网站,我不希望在暂存最终稳定时丢失他们的数据。

我想知道 Facebook 或 Google 如何在不丢失 beta 测试人员数据的情况下推出他们的新功能?

答案1

你不能。

我的建议是不要将生产复制到暂存,而是偶尔使用生产备份文件之一重建暂存数据库。然后,您就可以使用生产数据(尽管是几个小时或几天以前的数据),但您在暂存上所做的更改不会影响生产。

编辑:经过您的编辑,这现在是一个截然不同的问题。

如果您的 beta 测试人员使用您的临时服务器并期望他们的数据投入生产,那么它就不是临时服务器:而是生产服务器。我认为这是根本概念的转变,使得这个问题很难回答;我们大多数人(我认为)认为临时服务器是可以毫无顾忌地转储和重建的蚀刻草图。如果您计划允许某些用户对您的更改进行 beta 测试并在您投入生产时保留他们的数据,那么您需要一个与临时/生产不同的框架。

EDIT2:这里有一些与此类设置有关的 Stack Overflow 问题:

相关内容