gpt4 book ai didi

mysql - 如何通过对代码(脚本)、模块和数据库(添加的任务、供应商、项目)的自定义来正确更新 Docker Azerothcore

转载 作者:行者123 更新时间:2023-12-02 18:50:20 28 4
gpt4 key购买 nike

我在 Docker 容器中运行 Azerothcore-WOLTK。
我想更新服务器,因为我读到有一个重要的安全修复程序。
但是,自从我去年(2019 年 12 月)首次安装服务器以来,我从未更新过服务器。从那时起,我以几种方式定制了服务器:

  • 我已经定制了一些老板脚本以与两个玩家一起正常工作。
  • 我已经安装了一些模块,包括一个还需要编译一些额外代码和运行一些 SQL 查询的模块。
  • 我自己修改了数据库,添加了任务、NPC、供应商和元素

  • 因此,我非常担心我最终会搞砸一切。我需要您的帮助,了解如何继续将服务器更新到最新版本,同时保持我执行的所有自定义。
    我特别担心数据库更改,因为我想我可以备份更新的老板脚本,做一个 git pull 并在构建之前再次替换它们(我应该在之后做一个 fork,我没有考虑过)......
    但无论如何,如果你能一步一步地指导我,我将非常感激,考虑到我正在使用 docker 安装。
    对于任何与数据库相关的东西,我都使用 Heidi SQL,所以我可以将它用于任何数据库过程。我对 SQL 查询不是很精通,但我应该能够根据需要导入 .sql 文件。
    我知道我问了很多,所以请不要有压力马上回答。如果您有机会能帮助我,我将不胜感激。
    感谢您的时间 :)

    最佳答案

    我会尽量回答你提到的所有观点:
    1.老板脚本。
    可能发生的最糟糕的事情是你得到 合并冲突 同时使用 git 提取最新更改.所以你必须手动解决它们。这不一定很难,尤其是在您的情况下。这只是老板脚本,所以从本质上讲,它们是非常独立的,当你弄乱它们时,你肯定不会破坏其他任何东西。
    2. 模块
    模块根本不应该是一个问题。模块的存在正是因为这个原因:被隔离并且在更新核心或类似的情况下不会引起问题。
    我唯一关心的是需要核心更改的模块。我不知道你安装了什么模块,通常这不应该发生。一个合适的艾泽拉斯核心模块应该不需要任何核心变化。
    但是,再一次,您可能遇到的最糟糕的事情是一些 git 合并冲突,我希望没有太大的影响(取决于模块所需的这些更改有多大和侵入性)。
    3.自定义数据库更改。
    黄金法则是:始终将您的自定义 SQL 查询存储在某个地方,以便可以轻松地重新应用它们。例如,始终使用 DELETE之前 INSERT , 更喜欢 UPDATE在可能的情况下,等等...
    因此,您只需要一个文件(或一堆文件),其中包含与您所做的自定义更改相对应的所有 SQL 代码。如果你没有它,你仍然可以从你的数据库中提取它。
    然后,如果您觉得需要,您可以在更新核心后随时重新应用它们。也可能是您根本不需要重新应用它们。或者,也许您想从一个全新的 AzerothCore 世界数据库开始并重新应用您的更改。这实际上取决于具体情况,但无论如何您都会没事的(只要您将更改保存在 SQL 文件中)。
    您可以使用Keira3编辑您的数据库,或者在需要时提取您的更改。例如,您可以打开一个实体并复制其“完整查询”。
    先备份
    在开始升级过程之前,请创建以下备份:

  • 您的数据库
  • 您修改过的源文件(例如老板等...)

  • 经常更新!

    However I never updated the server since I first installed it last year (December 2019).


    根本不建议这样做!你应该经常更新你的艾泽拉斯核心(至少每周一次)。这样做有很多很好的理由,其中之一是:如果你经常这样做会更容易。
    使用 Docker 时如何更新 AzerothCore
    此处已提出有关使用 Docker 更新 AC 的一般问题: How to update azerothcore-wotlk docker container

    关于mysql - 如何通过对代码(脚本)、模块和数据库(添加的任务、供应商、项目)的自定义来正确更新 Docker Azerothcore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63473553/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com