如何通过对代码(脚本)、模块和数据库(添加的任务、供应商、项目)的自定义来正确更新 Docker Azerothcore
How to properly Update Docker Azerothcore with customizations to both code (scripts), modules and database (added quests, vendors, items)
我在 Docker 容器中 运行ning Azerothcore-WOLTK。
我想更新服务器,因为我读到有一个重要的安全修复程序。
然而,自从我去年(2019 年 12 月)首次安装服务器以来,我从未更新过它。从那以后,我通过几种方式定制了服务器:
- 我已经自定义了一些 boss 脚本,可以在两个玩家中正常工作。
- 我已经安装了一些模块,包括一个还需要编译一些额外代码的模块,以及一些 SQL 查询 运行.
- 我自己修改了数据库,添加了任务、NPC、商贩和物品
因此,我非常担心我最终会搞砸一切。我需要你的帮助,了解如何继续将服务器更新到最新版本,同时保持我执行的所有自定义设置。
我特别担心数据库的变化,因为我认为我可以备份更新的老板脚本,在构建之前再次 git 拉取并替换它们(我应该在之后做一个分支,我没有'别想了)...
但无论如何,考虑到我使用的是 docker 安装,如果你能一路指导我,我将非常感激。
对于与数据库相关的任何事情,我都使用 Heidi SQL,因此我可以将其用于任何数据库过程。我不是很精通 SQL 查询,但我应该能够根据需要导入 .sql 文件。
我知道我问了很多,所以请不要觉得有压力马上回答。如果您有机会帮助我,我将不胜感激。
感谢您的宝贵时间:)
我会尽力回答您提到的所有要点:
1。老板脚本。
可能发生的最糟糕的事情是您在使用 git
提取最新更改时遇到 合并冲突 。所以你必须手动解决它们。这不一定很困难,尤其是在您的情况下。这只是 boss 脚本,所以从本质上讲,它们相当 self-contained,你肯定不会在弄乱它们时破坏任何其他东西。
2。模块
模块应该不是问题。模块的存在正是出于这个原因:被隔离并且在更新核心或类似的情况下不会引起问题。
我唯一关心的是需要核心更改的模块。我不知道你安装了什么模块,通常这不应该发生。一个合适的 AzerothCore 模块应该不需要任何核心更改。
然而,同样,最糟糕的事情是一些 git 合并冲突,我希望不要太大(取决于模块需要的这些更改有多大和侵入性)。
3。自定义数据库更改。
黄金法则是:始终将您的自定义 SQL 查询存储在某个地方,以一种可以轻松 re-applied 的方式。例如,始终在 INSERT
之前使用 DELETE
,尽可能使用 UPDATE
,等等...
因此,您只需要一个文件(或一堆文件),其中包含与您所做的自定义更改相对应的所有 SQL 代码。如果您没有它,您仍然可以从您的数据库中提取它。
然后,如果您觉得有必要,可以在更新核心后随时 re-apply 它们。也可能根本不需要 re-apply 它们。或者,也许您想从全新的 AzerothCore 世界数据库和 re-apply 您的更改开始。这实际上取决于具体情况,但无论如何你会没事的(只要你将更改保存在 SQL 文件中)。
您可以使用 Keira3 来编辑您的数据库,或者只提取您的更改以备不时之需。例如,您可以打开一个实体并复制其“完整查询”。
先备份
在开始升级程序之前,创建备份:
- 你的数据库
- 您修改过的源文件(例如boss等...)
经常更新!
However I never updated the server since I first installed it last year (December 2019).
完全不推荐!你应该经常更新你的 AzerothCore(至少每周一次)。这样做有很多充分的理由,其中之一是:如果您经常这样做,会容易得多。
如何在使用 Docker
时更新 AzerothCore
关于用 Docker 更新 AC 的一般问题已在此处提出:
我在 Docker 容器中 运行ning Azerothcore-WOLTK。 我想更新服务器,因为我读到有一个重要的安全修复程序。
然而,自从我去年(2019 年 12 月)首次安装服务器以来,我从未更新过它。从那以后,我通过几种方式定制了服务器:
- 我已经自定义了一些 boss 脚本,可以在两个玩家中正常工作。
- 我已经安装了一些模块,包括一个还需要编译一些额外代码的模块,以及一些 SQL 查询 运行.
- 我自己修改了数据库,添加了任务、NPC、商贩和物品
因此,我非常担心我最终会搞砸一切。我需要你的帮助,了解如何继续将服务器更新到最新版本,同时保持我执行的所有自定义设置。
我特别担心数据库的变化,因为我认为我可以备份更新的老板脚本,在构建之前再次 git 拉取并替换它们(我应该在之后做一个分支,我没有'别想了)... 但无论如何,考虑到我使用的是 docker 安装,如果你能一路指导我,我将非常感激。
对于与数据库相关的任何事情,我都使用 Heidi SQL,因此我可以将其用于任何数据库过程。我不是很精通 SQL 查询,但我应该能够根据需要导入 .sql 文件。
我知道我问了很多,所以请不要觉得有压力马上回答。如果您有机会帮助我,我将不胜感激。
感谢您的宝贵时间:)
我会尽力回答您提到的所有要点:
1。老板脚本。
可能发生的最糟糕的事情是您在使用 git
提取最新更改时遇到 合并冲突 。所以你必须手动解决它们。这不一定很困难,尤其是在您的情况下。这只是 boss 脚本,所以从本质上讲,它们相当 self-contained,你肯定不会在弄乱它们时破坏任何其他东西。
2。模块
模块应该不是问题。模块的存在正是出于这个原因:被隔离并且在更新核心或类似的情况下不会引起问题。
我唯一关心的是需要核心更改的模块。我不知道你安装了什么模块,通常这不应该发生。一个合适的 AzerothCore 模块应该不需要任何核心更改。 然而,同样,最糟糕的事情是一些 git 合并冲突,我希望不要太大(取决于模块需要的这些更改有多大和侵入性)。
3。自定义数据库更改。
黄金法则是:始终将您的自定义 SQL 查询存储在某个地方,以一种可以轻松 re-applied 的方式。例如,始终在 INSERT
之前使用 DELETE
,尽可能使用 UPDATE
,等等...
因此,您只需要一个文件(或一堆文件),其中包含与您所做的自定义更改相对应的所有 SQL 代码。如果您没有它,您仍然可以从您的数据库中提取它。
然后,如果您觉得有必要,可以在更新核心后随时 re-apply 它们。也可能根本不需要 re-apply 它们。或者,也许您想从全新的 AzerothCore 世界数据库和 re-apply 您的更改开始。这实际上取决于具体情况,但无论如何你会没事的(只要你将更改保存在 SQL 文件中)。
您可以使用 Keira3 来编辑您的数据库,或者只提取您的更改以备不时之需。例如,您可以打开一个实体并复制其“完整查询”。
先备份
在开始升级程序之前,创建备份:
- 你的数据库
- 您修改过的源文件(例如boss等...)
经常更新!
However I never updated the server since I first installed it last year (December 2019).
完全不推荐!你应该经常更新你的 AzerothCore(至少每周一次)。这样做有很多充分的理由,其中之一是:如果您经常这样做,会容易得多。
如何在使用 Docker
时更新 AzerothCore关于用 Docker 更新 AC 的一般问题已在此处提出: