做网络游戏服务器升级的最佳做法?

巫妖王*_*巫妖王 5 php mysql upgrade

假设我有一个正在运行的在线游戏,它的版本为1.0.

我一直在开发登台服务器并为游戏带来新功能.登台服务器是与实时服务器不同的服务器.(我相信大多数人这样做)

好.我完成了新版本1.1.现在进行在线游戏服务器升级的最佳做法是什么?

我们假设它是一个简单的游戏服务器PHP + MYSQL.所以有新的PHP脚本或更改的脚本,以及新的mysql表,列或修改的列.我希望不要手动执行 - 在实时服务器上逐个手动执行相同的更改.这是丑陋的,容易犯错,必须记住你所做的每一个改变.

我能想到的另一种方法是使登台服务器生效,并导入所有现有的数据库数据.我不喜欢它,似乎任何时候都可能发生错误.

您可以推荐的最佳方式是什么?

Dan*_*iel 8

  • 版本控制 - 使用它!
  • 迁移 - 使用它!

版本控制(Git)

你应该在实时服务器上有一个git服务器,就像你的测试/舞台服务器一样.您将对您所做的更改进行提交,然后您将"推送"这些提交/更改到服务器.一旦您的测试服务器工作,您将把它推送到您的实时服务器.

迁移

大多数现代PHP框架都提供此功能.基本上,您将在代码中描述您的数据库模式.使用Laravel,您可以运行:artisan migrate或者将模式推送到数据库的东西.

只有一个数据库和一个Web服务器,您可能希望阻止公众访问它们直到它更新,这主要是针对数据库,并且只会持续几秒钟,但会在迁移时防止任何错误.一个简单的git post hook就可以了.网上有很多关于此的信息.