问题描述
我在Docker容器中运行Azerothcore-WOLTK。 我想更新服务器,因为我阅读了一个重要的安全修复程序。
但是,自从我去年(2019年12月)首次安装服务器以来,我从未更新过服务器。从那时起,我以多种方式自定义服务器:
因此,我非常担心自己最终会弄乱一切。在保持我执行的所有自定义功能的同时,我将在如何继续将服务器更新到最新版本方面向您寻求帮助。
我特别担心数据库更改,因为我认为我可以备份更新的老板脚本,进行git pull并在构建之前再次替换它们(我之后应该做一个fork,我没有考虑过)。 .. 但是无论如何,考虑到我正在使用docker安装,如果您能逐步指导我,我将非常感激。
对于与数据库相关的任何事情,我都使用Heidi sql,因此我可以将其用于任何数据库过程。我对SQL查询不是很熟练,但是我应该能够根据需要导入.sql文件。
我知道我要问的很多,所以请不要感到马上就回答的压力。如果您有机会能帮助我,我将非常感谢。
谢谢您的时间:)
解决方法
我会尽力回答您提到的所有问题:
1。老板脚本。
可能发生的最糟糕的事情是,您在使用git
提取最新更改的同时遇到了合并冲突。因此,您将必须手动解决它们。不一定困难,尤其是在您的情况下。这只是老板脚本,因此,从本质上讲,它们是完全独立的,并且在与它们混淆时,您一定不会破坏其他任何东西。
2。模块
这些模块应该根本不是问题。正是由于这个原因,模块才得以存在:被隔离,并且在更新内核或类似组件的情况下不会引起问题。
我在这里唯一关心的是需要核心更改的模块。我不知道您安装了什么模块,通常不会发生这种情况。正确的AzerothCore模块应该不需要任何核心更改。 但是,同样,最糟糕的是一些git merge冲突,我希望没有太大的问题(取决于模块所要求的这些更改的大小和侵入性)。
3。自定义数据库更改。
黄金法则是:始终将自定义SQL查询存储在某个地方,以便可以轻松地重新应用它们。例如,请始终在DELETE
之前使用INSERT
,并尽可能使用UPDATE
,等等。
因此,您只需要一个文件(或一堆文件),其中包含与您进行的自定义更改相对应的所有SQL代码。如果没有,您仍然可以从数据库中提取它。
然后,如果您觉得有必要,可以随时在更新核心后重新应用它们。也有可能根本不需要重新应用它们。或者,您可能想从一个新的AzerothCore世界数据库开始并重新应用您的更改。这确实取决于具体情况,但是无论如何,您都可以(只要将更改保存在SQL文件中即可)。
您可以使用Keira3编辑数据库,或者只是提取您的更改以备不时之需。例如,您可以打开一个实体并复制其“完整查询”。
先备份
在开始升级过程之前,请创建以下内容的备份:
- 您的数据库
- 您已修改的源文件(例如boss等)
经常更新!
但是,自从去年(2019年12月)首次安装服务器以来,我从未更新过服务器。
完全不建议这样做!您应该经常(至少每周一次)更新AzerothCore。这样做有很多充分的理由,其中之一是:经常这样做会更容易。
使用Docker时如何更新AzerothCore
这里已经提出了有关使用Docker更新AC的通用问题:How to update azerothcore-wotlk docker container