假设我有一个正在运行的在线游戏,它的版本为1.0.
我一直在开发登台服务器并为游戏带来新功能.登台服务器是与实时服务器不同的服务器. (我相信大多数人这样做)
好.我完成了新版本1.1.现在进行在线游戏服务器升级的最佳做法是什么?
让我们假设它是一个简单的游戏服务器PHP MysqL.所以有新的PHP脚本或更改的脚本,以及新的MysqL表,列或修改的列.我希望不要手动执行 – 在实时服务器上逐个手动执行相同的更改.这是丑陋的,容易犯错,必须记住你所做的每一个改变.
我能想到的另一种方法是使登台服务器生效,并导入所有现有的数据库数据.我不喜欢它,似乎任何时候都可能发生错误.
您可以推荐的最佳方式是什么?
最佳答案
>版本控制 – 使用它!
>迁移 – 使用它!
>迁移 – 使用它!
版本控制(Git)
你应该在实时服务器上有一个git服务器,就像你的测试/舞台服务器一样.您将对您所做的更改进行提交,然后您将“推送”这些提交/更改到服务器.一旦您的测试服务器工作,您将把它推送到您的实时服务器.
迁移
大多数现代PHP框架都提供此功能.基本上,您将在代码中描述您的数据库模式.使用Laravel,您将运行:artisan migrate或将模式推送到您的数据库的东西.
只有一个数据库和一个Web服务器,您可能希望阻止公众访问它们直到它更新,这主要是针对数据库,并且只会持续几秒钟,但会在迁移时防止任何错误.一个简单的git post hook就可以了.网上有很多关于此的信息.